Angularjs 装订不';当原始对象更改时,不更新
我想我误解了数据绑定和作用域在Angular中的工作原理,或者我对Javascript有一些误解。我希望有人能帮助我 假设我有一个工厂,它有一个对象,并为它定义了一个getter/setter: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 {
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);
}
谢谢,我的实际代码有点复杂,但这为我指明了正确的方向是的!我正要放弃