2015-10-05 76 views
0

我是AngularJS的新手。請參閱下面的代碼並告訴我它在做什麼。

$scope.$on('$viewContentLoaded', function(event) {}); 

如何在控制器中使用它來訪問DOM?

$timeout(function() { }); 

我找的解釋,例如如何在現實生活中,它做什麼用$scope.$on()$timeout()

+0

不應該從控制器訪問/操作DOM。 DOM訪問和操作的唯一地方是'directive'中的'link'功能。 – Michael

回答

4

$scope.$on爲作爲第一個參數傳遞的事件註冊偵聽器,並在所述事件的每個實例上執行作爲第二個參數傳遞的函數。 $broadcast$emit可用於發送自己的自定義事件。

$timeout可以代替setTimeout使用,但使用時無延遲參數來調用執行其回調函數之前只會等待下一次消化。

至於DOM操作,這不應該在一個標準的'jQuery像時尚'中進行。如果需要操作DOM,則可以定義自定義指令來封裝此功能,並因此允許Angular框架管理其切分。

+3

'$ timeout'將在Angular生命週期內運行。如果你使用JS'setTimeout',你需要手動調用'$ scope.digest()'。 – Michael

+0

我是新的ng ...所以仍然不明白這個'$ scope。$在寄存器上,這個事件的監聽器作爲第一個參數傳遞,可以用一個簡單的例子來解釋它。謝謝 – Mou