我想我误解了 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>
然后,有人调用 myFactoy.setObject() 方法并将工厂中的原始对象替换为新对象。
我的绑定不应该自动更新吗?如果不应该...这是实现这一目标的最佳方法?
原来的对象没有改变。您只是更改对它的引用。
使用这个代替:
setObject : function(obj) {
angular.copy(obj, myObject);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)