将作用域对象传递给可以监视和更新它的服务
pass scope object to service which can watch and update it
我写了一些代码,它监视一个范围变量并更新它,这一切都很好。我现在正试图将其封装在一个服务中,所以我需要将一个对象传递给我的服务,然后让服务监视它并更新它。
我认为问题是,当传递对象时,它是通过引用传递的,但不能更新,只有成员可以(如果我正确理解了引用传递的话)。
我的代码的简化版本如下:
angular.module('my.services').factory('myUtils', function ($log, $timeout, $rootScope, $state, $stateParams) {
'use strict';
var myUtils = {};
myUtils.syncUrlToObject = function(myObject, callback){
$rootScope.$watch(function(){
return myObject;
}, function(newValue, oldValue){
// Update tmyObject
myObject = {foo: 'bar'}
// Run the callback
callback();
}, true);
}
return myUtils;
});
观察者必须在控制器或指令中,但不能在服务中。
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- 在节点脚本中,如何监视文件的更改并获取更新的内容
- AngularJS:如何重新启动控制器以更新要监视的数据源模型
- 更新一个控制器中的模型,该模型被监视并位于不同的包中,并由另一个控制器使用
- 从指令更新作用域,并使用另一个指令进行监视
- 更新Angular Directive的值时出现问题's模型,同时从表单的监视进行更新
- angular ui-router中的Named视图没有更新,尽管它被监视了
- Angular.js在长轮询更改监视值时更新ng类
- Javascript中的循环/监视对象的更新
- Angular ng-repeat的最佳实践:只监视特定迭代中的更新
- 将作用域对象传递给可以监视和更新它的服务
- 监视嵌套在传递到角度组件的多个对象中的更新
- 监视不在$scope上的变量以更新在$scop上的变量