为什么不是我的AngularJS $作用域?$watch在服务变更时被触发
Why isn't my AngularJS $scope.$watch being triggered on service changes?
在我的控制器中,我有:var timespanServiceFn;
timespanServiceFn = function() {
return timespanService.getTimespan();
};
$scope.$watch(timespanServiceFn, $scope.updateVolume());
我的$scope.updateVolume()
函数只有一个console.log
所以我知道我到达了那里
我的timespanService
也超级简单:
myApp.service('timespanService', [
'$http', '$q', function($http, $q) {
var currentTimespan;
currentTimespan = '3M';
this.getTimespan = function() {
return currentTimespan;
};
this.setTimespan = function(timespan) {
console.log('setting timespan to', timespan);
return currentTimespan = timespan;
};
}
]);
那么为什么当我改变时间跨度时,$watch
没有被触发?
watch接受两个函数作为参数。你必须将第二个参数作为参数传递但是你刚刚调用了它:
$scope.$watch(timespanServiceFn, $scope.updateVolume());
因此,$scope.updateVolume()
的返回语句将传递给$watch
函数,而不是函数定义本身。
改成:
$scope.$watch(timespanServiceFn, $scope.updateVolume);
<<p> 看到演示/strong> 相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- 监视函数从服务返回不起作用,但作用域函数起作用
- 通过Magento的网络服务检索运费
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 使用angular.js问题的JavaSpringREST服务
- AngularJS-需要在index.html页面中访问来自服务的数据
- 如何在Ionic2测试版中包含Ionic.io服务
- 基于api密钥的NodeJS web服务
- Redux应用程序结构-在哪里放置服务/业务逻辑
- Liferay:从portlet调用JSON服务
- 使用javascript在客户端上使用Web服务
- 如何通过安全的https连接在javascript中使用基于soap xml的Web服务
- Angular JS$编译服务导致$watch内存泄漏
- 使用 $watch 在属性更改时执行$http调用的角度服务
- 使用服务跟踪用户状态并使 $watch() 正常工作
- 递归服务函数上的角度$watch
- AngularJS:$watch服务中的其他服务
- Angular-$watch检查服务状态
- 为什么不是我的AngularJS $作用域?$watch在服务变更时被触发
- 我怎样才能$watch看到Angular服务的属性变化呢?