AngularJS - 为何删除观察者?

时间:2014-12-02 03:14:50

标签: angularjs

我是AngularJS的新手,我花了一些时间来完成一些教程。在一个教程中,它显示了如何使用以下示例删除观察者:

$scope.breakit = $scope.$watch('mydata.val',function(newval){
    $scope.mydata.toolong = newval.length >3;
})

<button ng-click="breakit()">Break It</button>

它有效,但我不明白的是为什么调用breakit函数会删除观察者?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

$ watch in angularjs会返回注销功能,调用它会取消注册$ watcher,这就是你要经历的例子。

现在的问题是你何时想要观看表达式。它很简单,当它对你没用时(因为它包括性能)。例如,如上面显示的代码,

当值大于3时,它设置变量$ scope.mydata.toolong = 1可能用于某些验证目的,但它也为您提供了一个按钮&#34; Break it&#34;如果要输入大于3的值,只需通过注销功能监视来中断验证。