我有一个手表功能:
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后运行一些代码?
答案 0 :(得分:2)
$watch
函数后都会执行 $scope.$digests()
个函数。
如果你想在hasUnsavedChanges
之类的变量变为真后执行代码。将它变成一个函数并在那里执行所有代码就更有意义了:
scope.setUnsavedChanges = function(){
scope.hasUnsavedChanges = true;
//the rest of your code goes here
}
scope.$watch('target', function(){
scope.setUnsavedChanges();
}, true);