Arrays 更新主干中模型内的阵列

Arrays 更新主干中模型内的阵列,arrays,backbone.js,Arrays,Backbone.js,我的模型中有一个数组: accountRuleMessages: Array[1] 0: Object ruleKey: "abc" ruleMessage: "error" 我想根据以下条件在我的应用程序中更新此阵列: this.model.set('accountRuleMessages', { "ruleKey": "123","ruleMessage": "new message" }); 但现在将数组设置为: accountRuleMess

我的模型中有一个数组:

accountRuleMessages: Array[1]
     0: Object
        ruleKey: "abc"
        ruleMessage: "error"
我想根据以下条件在我的应用程序中更新此阵列:

this.model.set('accountRuleMessages', { "ruleKey": "123","ruleMessage": "new message" });
但现在将数组设置为:

accountRuleMessages: Object
       ruleKey: "123"
       ruleMessage: "aa"

这样做对吗?请确认

最好在模型中使用嵌套集合,而不是普通数组

如果accountRuleMessages作为数组来自服务器,则可以在模型的解析方法中将其转换为主干.Collection

然后使用收集方法轻松更新:

var firstMessage = this.model.get('accountRuleMessages').at(0);
firstMessage.set({
  ruleKey: "123",
  ruleMessage: "new message"
});
但是,如果要使用普通数组,请执行以下操作:

var accountRuleMessages = this.model.get('accountRuleMessages');
accountRuleMessages[0] = {
  ruleKey: "123",
  ruleMessage: "new message"
}
应该可以工作,因为数组是通过引用传递的,所以您可以直接修改它。但是,您将无法执行有用的操作,例如当消息更改时,重新呈现此消息列表,就像使用集合一样


专业提示:如果您确实将其设置为集合,那么最好使用设置为ruleKey的模型,这样您就可以使用collection.get和其他功能。

this.Model.set'accountRuleMessages',[0][{ruleKey:123,ruleMessage:newmessage}];我并不是100%都能成功