将范围对象传递给可以查看和更新​​它的服务

时间:2015-08-25 20:02:18

标签: javascript angularjs

我已经编写了一些代码来监视范围变量并对其进行更新,这些代码工作正常。我现在正试图将其包装在一个服务中,所以我需要将一个对象传递给我的服务,然后让服务观察并更新它。

我认为问题在于,当传递对象时,它通过引用传递但无法更新,只有成员可以(如果我理解通过引用正确传递。

我的代码的简化版本如下所示。

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;

});

1 个答案:

答案 0 :(得分:0)

观察者必须在控制者或指令中但不在服务中。我想。