当内容更改时,我在 Angular Directive(指令)中$watch运行frame.sly(“reload”)函数。
但我应该立即执行此操作,现在内容更改后 console.log 看起来像这样。
日志日志(2)日志(3)日志(4)日志(5)...
并且每次调用frame.sly("reload")函数的次数越来越多。
scope.$watch(
function () {
return scope.value;
},
function (newValue, oldValue) {
if (!angular.equals(oldValue, newValue)) {
$timeout(function() {
console.log("Log");
frame.sly("reload");
}, 300)
}
} ,true);
有什么想法吗?提前致谢。
您可以像这样注销$watch
:
var watcher = scope.$watch(
function () {
return scope.value;
},
function (newValue, oldValue) {
if (!angular.equals(oldValue, newValue)) {
$timeout(function() {
console.log("Log");
frame.sly("reload");
watcher();
}, 300)
}
} ,true);
我是一名优秀的程序员,十分优秀!