[譯]AngularJS中DOM操作


再翻譯一篇干貨短文,原文:AngularJS jQuery

雖然Angularjs將我們從DOM的操作中解放出來了,但是很多時候我們還是會需要在controller/view加載之后執行一些DOM操作。問題是我們將DOM操作的代碼放到controller中,然而controller是先於view加載的,這個時候我們要操作的元素還是不存在的。

這里有幾種辦法解決這個問題,我們按照AngularJS最佳實踐方法的推薦度,從高到低列出來:

  1. 監聽$viewContentLoaded廣播事件

    $scope.$on('$viewContentLoaded', function(event) {
    //Your code goes here.
    });
    
  2. 使用0秒延遲的$timeout,這樣view已經加載完了($timeout是在DOM呈現之后執行的), 我們的代碼在下一個$digset循環中執行

    $timeout(function() {
    //Your code goes here.
    });
    
  3. 使用流行而古老的jQuery方式(在大多數的場景中都是工作的)

    jQuery(window).ready(function() {
    //Your code goes here.
    })
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM