gpt4 book ai didi

Ember.js - 如何在 ArrayProxy 中设置元素的属性?

转载 作者:行者123 更新时间:2023-12-01 08:02:03 25 4
gpt4 key购买 nike

如果我在模型中使用 ArrayProxy,则找不到更新该数组中特定元素属性的方法。

这是我的示例路由和 Controller :

App.IndexRoute = Ember.Route.extend({
model: function() {
return Ember.ArrayProxy.create({
content : [
{ firstName : "Bob", lastName : "Smith" },
{ firstName : "George", lastName : "Jhnsn"}
]
});
}
});


App.IndexController = Ember.Controller.extend({
actions : {
fixGeorgesLastName : function(){
// how to I change the last name to 'Johnson' ???
console.log(this.get("model").objectAt(1).lastName); // Jhnsn
var georgeObjFromModel = this.get("model").objectAt(1);
console.log(georgeObjFromModel.lastName); // Jhnsn

// georgeObjFromModel.objectAt(1).lastName = "Johnson"; // error !!! TypeError: Object #<Object> has no method 'objectAt'

}
}
});

我如何更改 lastName第二个元素的值?

我可以弄清楚如何为同一数组的本地版本执行此操作:
// local instance of same array
var localCustomerArray = Ember.ArrayProxy.create({
content : [
{ firstName : "Bob", lastName : "Smith" },
{ firstName : "George", lastName : "Jhnsn"}
]
});

// works fine
console.log("before: " + localCustomerArray.objectAt(1).lastName); // Jhnsn
localCustomerArray.objectAt(1).lastName = "Johnson";
console.log("after: " + localCustomerArray.objectAt(1).lastName); // Johnson

知道我做错了什么吗?

最佳答案

通过 This question 找到答案

它可以使用 Ember.set 更新方法:

var georgeObjFromModel = this.get("model").objectAt(1);
Ember.set(georgeObjFromModel, "lastName", "Johnson");

关于Ember.js - 如何在 ArrayProxy 中设置元素的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19715037/

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