这是我的简单指令:
app.directive('someButton',function(){
return {
restrict : 'E',
template : "<button>{{buttonText}}</button>",
link : function(scope,element,attr){
scope.$watch('counter',function(oldVal,newVal){
console.log("counter changed from ",oldVal ,"to " ,newVal);
})
}
}
});
已更改的值是范围中的计数器,初始化如下:
$ scope.counter = 0;
我也点击按钮点击++;
当我的页面重新加载时,控制台说&#34;从0变为0&#34;。我可以阻止这种情况吗?
答案 0 :(得分:0)
你不能这样做,因为你没有坚持你的$scope.counter
因此在页面刷新之后你的$scope.counter
将被重置为0.结果,在手表中你将获得新的和旧的价值为0.如果要保留,可以使用localStorage(或sessionStorage)
答案 1 :(得分:0)
将oldVal
与newVal
进行比较,如果它们相同,则返回:
scope.$watch('counter',function(newVal, oldVal){
if(newVal === oldVal) {
return;
}
console.log("counter changed from ",oldVal ,"to " ,newVal);
});