为什么$watch页面加载后直接触发,如何防止这种情况发生?
function MyCtrl($scope) {
// Init scope vars
$scope.data_copy = {};
// If data_copy changes...
$scope.$watch("data_copy", function(newValue, oldValue) {
alert("$watch triggered!");
}, true);
}
最佳答案
第一次运行时,两个值(newValue
和 oldValue
)相等,因此您可以通过检查相等性轻松地转义它:
$scope.$watch("data_copy", function(newValue, oldValue) {
if(newValue === oldValue){
return;
}
alert("$watch triggered!");
});
关于angularjs - $watch是在init之后直接触发的,为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15875105/