我需要注意倒计时变量的变化,以便在时间结束时运行任务。 我正在使用服务来更新变量,正如您在此plunker中所看到的那样:
http://plnkr.co/edit/NJxqXcD2nhDKq4Q99Bgt
$scope.$watch('time', function (time) {
// This portion of code is reached only twice:
// Once when undefined and after first update.
console.log(time);
});
我如何看待每项变更或从服务中触发我的任务(尽管我认为这是错误的选择)?
答案 0 :(得分:1)
自从time
引用未改变以来,Watcher仅触发两次。您有两个选择:打开对象相等(慢)或指定您自己的值提供者:
$scope.$watch('time', function () {
}, true); // Tells to check for object equality
$scope.$watch(function () {
return ($scope.time || {}).now;
}, function (now) {
// magic
});
但我认为您应该考虑使用$timeout
服务并承诺运行任务。