我是AngularJS的新手,我花了一些时间来完成一些教程。在一个教程中,它显示了如何使用以下示例删除观察者:
$scope.breakit = $scope.$watch('mydata.val',function(newval){
$scope.mydata.toolong = newval.length >3;
})
<button ng-click="breakit()">Break It</button>
它有效,但我不明白的是为什么调用breakit
函数会删除观察者?
答案 0 :(得分:1)
$scope.$watch
returns a function that deregisters the watcher。
答案 1 :(得分:1)
$ watch in angularjs会返回注销功能,调用它会取消注册$ watcher,这就是你要经历的例子。
现在的问题是你何时想要观看表达式。它很简单,当它对你没用时(因为它包括性能)。例如,如上面显示的代码,
当值大于3时,它设置变量$ scope.mydata.toolong = 1可能用于某些验证目的,但它也为您提供了一个按钮&#34; Break it&#34;如果要输入大于3的值,只需通过注销功能监视来中断验证。