angular js 中$apply()的使用


angular js的雙向數據綁定,在開發中起到的作用灰常大,但是,並不是所有時候都能起作用。

找了下資料發現,雙向數據綁定其實也就是當模型發生了變化的時候,重繪了DOM,使你看到數據被更新了,引發模型變化的情況有:

1,dom事件;

2,xhr響應觸發回調;

3,瀏覽器的地址變化;

4,計時器觸發回調;

以上的某一個情況發生,都會觸發模型監控機制,同時調用了$apply方法,重繪了dom;通常情況下,我們使用的一些指令或服務,如$http,$timeout,$location等都會調用$apply方法,

從而使用dom被重繪,數據得到更新,實現了雙向數據綁定。

而在有些情況下,比如回調里,

回調函數里執行的方法被不會觸發$apply方法。假如當你點擊打了比較input select radio等等,觸發了模型監控,值也隨之更新了。

此時需要手動調$scope方法,使dom重繪。

function b(){

//方法1

$scope.b='b';

$scope.$apply();

//方法2

/**$scope.$apply(function(){

  $scope.b='b';

})**/

}

 


免責聲明!

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



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