angular js 中$apply()的使用

來源:互聯網
上載者:User

標籤:

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‘;

})**/

}

 

angular js 中$apply()的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.