防止重新加载页面上的范围观察

时间:2016-04-17 16:31:25

标签: javascript angularjs

这是我的简单指令:

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;。我可以阻止这种情况吗?

2 个答案:

答案 0 :(得分:0)

你不能这样做,因为你没有坚持你的$scope.counter因此在页面刷新之后你的$scope.counter将被重置为0.结果,在手表中你将获得新的和旧的价值为0.如果要保留,可以使用localStorage(或sessionStorage)

答案 1 :(得分:0)

oldValnewVal进行比较,如果它们相同,则返回:

scope.$watch('counter',function(newVal, oldVal){
    if(newVal === oldVal) {
        return;
    }

    console.log("counter changed from ",oldVal ,"to " ,newVal);
});
相关问题