javascript - 将范围对象传递给可以监视和更新它的服务

标签 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;

});

最佳答案

观察者必须位于 Controller 或指令中,但不在服务中。我认为。

关于javascript - 将范围对象传递给可以监视和更新它的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32213041/

相关文章:

javascript - 在 Angular JS 中按键时提交表单

javascript - HTML 输入模式自定义验证消息导致错误

javascript - 在 PHP 生成的特定行 ID 之前追加

asp.net - ASP 表单操作文件 (FileSystemObject)

ruby-on-rails - 获取 ActionController::RoutingError(当尝试使用 AngularJS 将数据发布到 Rails 服务器时,没有路由匹配 [OPTIONS] "/users"

angularjs - 如何在 ui-router 中使用 stateParam 设置子状态

javascript - Node.js 中的计时器有何特殊之处?

javascript - 在 .map() 函数中发送 Prop

javascript - angularjs 指令不起作用(奇怪的问题)

javascript - json 在 Angular 中不起作用