2015-04-20 41 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.