我已经编写了一些代码来监视范围变量并对其进行更新,这些代码工作正常。我现在正试图将其包装在一个服务中,所以我需要将一个对象传递给我的服务,然后让服务观察并更新它。
我认为问题在于,当传递对象时,它通过引用传递但无法更新,只有成员可以(如果我理解通过引用正确传递。
我的代码的简化版本如下所示。
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;
});
答案 0 :(得分:0)
观察者必须在控制者或指令中但不在服务中。我想。