2016-04-07 104 views
2

我一直在學習Angular,現在我正試圖理解給我的一大段代碼,並且在代碼中包含很多$(),其中包含一個變量和一個方法調用$(variable_name).method()甚至是一個CSS類裏面的雙引號$(".class_name").method()

我明白$scope不錯,但是我對上面解釋的語法感到困惑。有人可以解釋它是什麼嗎?提前致謝。/Teo

P.S .:代碼是一個指令,所以我認爲JS除了Angular框架外沒有這個語法。

+2

可能重複的[$是什麼意思在JavaScript中籤名](http://stackoverflow.com/questions/1150381/what-is-the-meaning-of-sign-in-javascript) – JJJ

+3

這就是隻是jQuery,它與Angular沒有任何關係。 –

回答

3

Angular使用稱爲jqLit​​e的jQuery子集。在這裏你可以閱讀一個文檔:https://docs.angularjs.org/api/ng/function/angular.element使用$()函數基本上是包裝一個元素,所以你可以調用它的鏈接jqLit​​e函數。在您的特定示例中,$(variable_name).method()將使用jqLit​​e打包存儲在變量variable_name中的DOM節點,然後在其上運行method$(".class_name").method()$()的另一種用法。它的工作原理與querySelectorAll()相同,但不是收集DOM節點將返回jqLit​​e包裝節點的集合,然後執行相同的操作 - 在它們中的每個節點上運行method

+1

僅供參考:如果您在jQuery之前包含了jQuery,那麼它將是一個完整的jQuery對象而不是jQLite。 – ste2425

+2

這是正確的:-)但你應該在你的角度項目中包含jQuery之前總是三思。你可以用vanilla JS和angular本身實現的大部分功能,以及使用下一個庫可以減慢你的網站。 – Bodzio

+0

非常感謝@Bodzio!我被告知我正在閱讀的這段代碼只有Angular。現在你已經明確了它包含了JQuery以及它是什麼,我可以繼續查看後者。 (: – teowey