我有一个收藏品:
var initializeUpfrontCost = function () {
Entities.upfrontCost = new Entities.UpfrontCostCollection([
{ id: 'upfrontcost', name: 'upfrontcost', value: 0},
{ id: 'upfrontcostquote', name: 'upfrontcostquote', value: 0}
]);
};
我想只更新一行(模型)。我有:
Entities.upfrontCost.set({id: 'upfrontcostquote', value: "somevalue"});
但这似乎删除了另一行。 (触发了删除事件)。
如何更新我的收藏中的这一行?
由于
- Justin Wyllie
答案 0 :(得分:1)
您需要add({row}, {index: n})
在集合中插入一行(如果您不关心新行的位置,则需要add({row})
),但您必须知道要删除哪一行,所以你可以致电remove({oldrow})
。
您可以使用add
;
_.indexOf(collection, {row})
来电的索引
如果add&行不够好,那么你必须更新集合中的对象而不是替换它。
链接:
答案 1 :(得分:1)
查看collection.get(id)
您应该可以执行以下操作:
var entity = Entities.upfrontCost.get('upfrontcostquote');
//Returns a model which you can then modify
entity.set({
value: "some value"
});
当您在原始代码中调用collection.set()
时,它会将集合的值设置为您为其提供的新输入。相反,您想要做的是将个人Model
拉出集合并改为修改。