AngularJS : 清除$watch

2022-08-30 00:12:40

我在我的AngularJS应用程序中有一个手表功能。

$scope.$watch('quartzCrystal', function () {
   ...
}

但是,在一些条件之后(在我的示例中,在我的单页应用程序中更改页面),我想停止该监视(如清除超时)。

我该怎么做?


答案 1

$watch返回取消注册函数。调用它将取消注册 .$watcher

var listener = $scope.$watch("quartz", function () {});
// ...
listener(); // Would clear the watch

答案 2

scope.$watch 返回一个函数,您可以调用该函数并取消注册监视。

像这样:

var unbindWatch = $scope.$watch("myvariable", function() {
    //...
});

setTimeout(function() {
    unbindWatch();
}, 1000);