簡體   English   中英

AngularJS:$ watch的執行順序是什么?

[英]AngularJS: what is the execution order of $watch?

我有一個手表功能:

scope.$watch('target', function(){
   scope.hasUnsavedChanges = true;
}, true);

然后我改變了一些值:

functiion change(target){
   scope.hasUnsavedChanges = false;
   scope.target.Xxx = '';
   console.log('scope.hasUnsavedChanges = ' + scope.hasUnsavedChanges); 
}

它輸出錯誤。 那么當watch函數執行時? 如何在scope.hasUnsavedChanges在上面的代碼中變為true后運行一些代碼?

$watch函數在每次$scope.$digests()之后執行$scope.$digests()函數被調用。

如果你想在hasUnsavedChanges類的變量變為true之后執行代碼。 將它變為函數並執行其中的所有代碼是不是更有意義:

scope.setUnsavedChanges = function(){  
  scope.hasUnsavedChanges = true; 
  //the rest of your code goes here
}

scope.$watch('target', function(){
   scope.setUnsavedChanges();
}, true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM