ng $scope()不刷新的問題

這兩天開發項目的時候遇到了一個問題,就是在controler裏面代碼命名執行了,但是頁面並沒有做任何的改變,大概就是用{{}}做雙向數據綁定,$scope做相應的改變操作,首先你要確保沒有其他的報錯,作用域$scope沒問題,然後你就可以考慮$apply()。重點說明:這個時候你肯定用的不是ng自己的東西,比如你用的是jq的或者是其他的第三方庫

$apply()函數可以從Angular框架的外部讓表達式在Angular上下文內部執行。例如,假設你實現了一個setTimeout()或者使用第三方庫並且想讓事件運行在Angular上下文內部時,就必須使用$apply()。

簡而言之,使用$scope.$apply()時可以從外部進入上下文。如果在事件被觸發時調用$apply(),就會使用Angular事件循環來運行它。如果沒有調用$apply(),就不會在事件循環內執行這個函數,而它會運行在Angular上下文外部

上面這兩段我是抄的,簡潔明瞭,在使用ng-指令的時候會默認調用$apply(),調用它會強制一次$digest(髒檢查)循環

試試這個吧

$scope.$apply(function(){
          $scope.est = "Just A Test!"
        })
最好用上面的這種裏面嵌套函數的方式使用


另外附上幾個相關文章的鏈接

英文原文

中文翻譯

ng性能調優的7個建議,ng-reapt雙向綁定超過2500個會變慢

http://www.csdn.net/article/2013-09-18/2816972-AngularJS-performance-tuning-for-long-list

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章