本文介绍了$腕表初始化后,直接引发的,为什么呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么直接触发负荷和哪能prevent呢?
函数MyCtrl($范围){
//初始化范围瓦尔
$ scope.data_copy = {}; //如果data_copy变化...
$范围。$表(data_copy功能(为newValue,属性oldValue){ 警报($手表触发!); },真正的);
}
解决方案
在第一次运行这两个值(为newValue
和属性oldValue
)是相等的,所以你可以很容易通过检查平等逃避它:
$范围。$表(data_copy功能(为newValue,属性oldValue){
如果(为newValue ===属性oldValue){
返回;
}
警报($手表触发!);
});
骨节病>
Why does $watch trigger directly after page load and how can I prevent this?
function MyCtrl($scope) {
// Init scope vars
$scope.data_copy = {};
// If data_copy changes...
$scope.$watch("data_copy", function(newValue, oldValue) {
alert("$watch triggered!");
}, true);
}
解决方案
On first run both values (newValue
and oldValue
) are equal, so you may easily escape it by checking for equality:
$scope.$watch("data_copy", function(newValue, oldValue) {
if(newValue === oldValue){
return;
}
alert("$watch triggered!");
});
这篇关于$腕表初始化后,直接引发的,为什么呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!