Angularjs 如何监视由服务操纵的范围变量中的更改

Angularjs 如何监视由服务操纵的范围变量中的更改,angularjs,Angularjs,我需要观察倒计时变量中的变化,以便在时间结束时运行任务。 我正在使用一个服务来更新变量,正如您在这个plunker中看到的: 我如何监视每次更改或从服务触发我的任务(尽管我认为这是错误的选择)?由于对时间的引用未更改,Watcher仅触发两次。您有两个选项:启用对象相等(慢速)或指定自己的值提供程序: $scope.$watch('time',function(){ },对);//指示检查对象是否相等 $scope.$watch(函数(){ return($scope.time |{}); }

我需要观察倒计时变量中的变化,以便在时间结束时运行任务。 我正在使用一个服务来更新变量,正如您在这个plunker中看到的:


我如何监视每次更改或从服务触发我的任务(尽管我认为这是错误的选择)?

由于对
时间的引用未更改,Watcher仅触发两次。您有两个选项:启用对象相等(慢速)或指定自己的值提供程序:

$scope.$watch('time',function(){
},对);//指示检查对象是否相等
$scope.$watch(函数(){
return($scope.time |{});
},功能(现在){
//魔力
});

“我认为你应该考虑使用<代码> $TimeOuts<代码>服务,并承诺运行任务。

你如何打开脏检查?对不起,对象均等,哦,天哪,就是这个(我想我喝醉了):<代码> $TimeOutt(函数())//RunTask},TimelEft * 1000);code>不管怎样,这个问题都有助于我进一步了解
watch
$scope.$watch('time', function (time) {
    // This portion of code is reached only twice:
    // Once when undefined and after first update.
    console.log(time);
});