Bob*_*Bob 3 javascript function watch angularjs
即使有评论,我也很难理解以下代码
// Store the initial cell value so we can reset to it if need be
var oldCellValue;
var dereg = scope.$watch('ngModel', function() {
oldCellValue = ngModel.$modelValue;
dereg(); // only run this watch once, we don't want to overwrite our stored value when the input changes
});
Run Code Online (Sandbox Code Playgroud)
在这种情况下,函数dereg被调用了多少次?这是递归吗?
你所展示的代码简而言之
$watch()返回值(参见下面的$rootScope.$watch返回值)$watch(),它调用所引用function-这将导致ubinding的那$watch()阅读这篇好文章
摘要中的一小部分摘录:
如您所见,我们存储了
$watch()语句返回的函数引用; 然后,一旦$watch()触发几次,我们调用该存储的方法,取消绑定$ watch()侦听器.
在那个例子中,有一个if语句,它可以帮助我们决定何时是删除它的最佳时间$watch()(例如在第一次评估之后)......
scope.$watch()可以在这里找到更详细的定义:
正如我们从这个摘录中看到的那样:
$watch(watchExpression, [listener], [objectEquality]);...
返回此侦听器的注销功能.