Angularjs 装订不';当原始对象更改时,不更新

Angularjs 装订不';当原始对象更改时,不更新,angularjs,data-binding,angularjs-scope,Angularjs,Data Binding,Angularjs Scope,我想我误解了数据绑定和作用域在Angular中的工作原理,或者我对Javascript有一些误解。我希望有人能帮助我 假设我有一个工厂,它有一个对象,并为它定义了一个getter/setter: app.factory('myFactory', function(){ var myObject : { subObject : { subProperty : 'value' } }; return {

我想我误解了数据绑定和作用域在Angular中的工作原理,或者我对Javascript有一些误解。我希望有人能帮助我

假设我有一个工厂,它有一个对象,并为它定义了一个getter/setter:

app.factory('myFactory', function(){

    var myObject : {

        subObject : {

             subProperty : 'value'
        }
    };

    return {

        getObject : function() {

            return myObject;
        },

        setObject : function(obj) {

            myObject = obj;
        }
    };
};
然后,在控制器中,我获取此对象并将子对象指定给范围:

app.controller('myController', function($scope, myFactory){

    var myObject = myFactory.getObject();

    $scope.subObject = myObject.subObject;
});
在视图中,我绑定到该对象的子属性:

<div> {{subObject.subProperty}} </div>
{{subObject.subperty}
然后,有人调用myFactoy.setObject()方法并将工厂中的原始对象替换为新对象。
我的绑定不应该自动更新吗??如果不应该。。。实现这一点的最佳方法是什么???

原始对象不会改变。您只是在更改对它的引用


改用这个:

setObject : function(obj) {

    angular.copy(obj, myObject);
}

谢谢,我的实际代码有点复杂,但这为我指明了正确的方向是的!我正要放弃