gpt4 book ai didi

angularjs - 当原始对象更改时,绑定(bind)不会更新

转载 作者:行者123 更新时间:2023-12-02 23:46:09 26 4
gpt4 key购买 nike

我认为我误解了 Angular 中数据绑定(bind)和作用域的工作原理,或者我对 Javascript 总体上有一些误解。我希望有人能帮助我。

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

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

var myObject : {

subObject : {

subProperty : 'value'
}
};

return {

getObject : function() {

return myObject;
},

setObject : function(obj) {

myObject = obj;
}
};
};

然后,在 Controller 中我获取该对象并将子对象分配给范围:

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

var myObject = myFactory.getObject();

$scope.subObject = myObject.subObject;
});

在 View 中,我绑定(bind)到该对象的子属性:

<div> {{subObject.subProperty}} </div>

然后,有人调用 myFactoy.setObject() 方法并将工厂中的原始对象替换为新对象。我的绑定(bind)不应该自动更新吗?如果不应该...这是实现此目的的最佳方法?

最佳答案

原始对象没有改变。您只是更改对它的引用。

<小时/>

改用这个:

setObject : function(obj) {

angular.copy(obj, myObject);
}

关于angularjs - 当原始对象更改时,绑定(bind)不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24519698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com