再翻譯一篇干貨短文,原文:AngularJS jQuery
雖然Angularjs將我們從DOM的操作中解放出來了,但是很多時候我們還是會需要在controller/view加載之后執行一些DOM操作。問題是我們將DOM操作的代碼放到controller中,然而controller是先於view加載的,這個時候我們要操作的元素還是不存在的。
這里有幾種辦法解決這個問題,我們按照AngularJS最佳實踐方法的推薦度,從高到低列出來:
-
監聽$viewContentLoaded廣播事件
$scope.$on('$viewContentLoaded', function(event) { //Your code goes here. });
-
使用0秒延遲的$timeout,這樣view已經加載完了($timeout是在DOM呈現之后執行的), 我們的代碼在下一個$digset循環中執行
$timeout(function() { //Your code goes here. });
-
使用流行而古老的jQuery方式(在大多數的場景中都是工作的)
jQuery(window).ready(function() { //Your code goes here. })