我编写了一些代码来监视作用域变量并更新它,一切正常。我现在尝试将其包装在服务中,因此我需要将一个对象传递给我的服务,然后让服务监视它并更新它。
我认为问题在于,当传递对象时,它是通过引用传递的,但无法更新,只有成员可以(如果我正确理解了通过引用传递。
我的代码的简化版本如下所示。
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;
});
最佳答案
观察者必须位于 Controller 或指令中,但不在服务中。我认为。
关于javascript - 将范围对象传递给可以监视和更新它的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32213041/