2015-04-20 42 views
3

我需要做一个$元素上的一些DOM遍历,但是jQuery的或jQlite不这样做,我需要开箱什么,所以我需要使用jQuery插件叫做closestChild。角JS - 添加一个jQuery插件jQlite

https://github.com/lolmaus/jquery.closestchild/blob/master/jquery.closestchild.js

我一直在使用亭子安装和我想angular.min.js后加载它在我的脚本标记,但仍然得到了下面的错误。

Uncaught TypeError: Cannot read property 'fn' of undefined 

所以,我认为,与Angular自带的jQlite不会给你$默认工作?或者我只是以错误的顺序做事情?

+0

难道这需要你在写一个指令里面? – mccainz

+0

是的,我需要能够遍历下来找到$ main元素中的元素,以便我可以将类应用到它。 – jonhobbs

回答

2

没有,angular.element(jqLit​​e)没有出口$全局变量。所以你不能只使用任何jQuery插件与没有jQuery的Angular。在某些情况下,可以解决办法,如果你手动包括插件一样,如果它是jQuery的前创建$参考。例如像这样:

<script src="path-to-angular.js"></script> 
<script> 
window.$ = window.jQuery = angular.element; 
window.$.fn = window.$.prototype; 
</script> 
<script src="path-to-jquery.plugin.js"></script> 

然而,在你的情况下,将无法正常工作,因为感兴趣的插件使用$.fn.filter方法,其中jqLit​​e没有实现。这里是所有可用的列表angular.element methods

你可以自己实现一些他们与插件之前,包括..

不过,我会建议,如果你想使用jQuery插件实际使用jQuery。

+2

谢谢。似乎是一个耻辱,必须包括整个的jQuery的,只是为了找到一个选择了“浅”的比赛。我可能会看到一个纯JS方式来做到这一点。 – jonhobbs

0

jQlite不支持jQuery插件。实际上,它是一个轻量级的选择工具,而不是像jQuery那样支持扩展的重量级工具。

你有两个选择:

  1. 使用JavaScript实现的功能(element.getElementBySelector('富)[0])。
  2. 在你的项目中包含的jQuery。

我会亲自使用选项1.