2014-09-10 24 views
1

AngularJS在Angular內部事件系統觸發事件時會發生什麼?AngularJS事件與手錶

從性能的角度來看,我傾向於使用手錶或事件來更新我的應用程序的部分?

+0

可能重複:http://stackoverflow.com/questions/19616520/what-is-cheaper-performance-wise-broadcast-or-watch – Sprottenwels 2014-09-10 13:13:22

回答

3

當JS事件被觸發,它通常以同樣的方式處理所有的JS事件的處理 - 沒有什麼特別的或關於這種獨特。

然而,角將包裹處理的$內應用塊,使得它執行的功能後,就可以觸發摘要週期:

$scope.$apply(function(){ 
    $element.on('click',function(e){ 
      ... 
     }); 
}) 

在所有範圍變量A消化週期迭代,比較每一個都有以前的值來確定是否有任何變化,如果有,則調用它們相應的$ watch處理程序來更新視圖。

由於您使用的角度,設置$監視表達式時,要檢測你的範圍模式發生了變化,然後從$表處理程序中做任何DOM操作。如果您擔心性能,請確保您的$ watch功能得到優化(即避免完整的jquery,避免使用昂貴的查詢選擇器,儘量減少DOM操作等)。

要回答您的問題,您應該使用$ watch監視您的模型和$ watch函數來更新您的視圖。的