0

我的模型是这样定义的:

model{
name;
number;
subLines[ ]; ->array object:subtitle,status
}

我用这种方式来改变 sublines 属性

this.model.get("subLines").foreach(function(line){
line.status = "submited"
});

console.log(this.model);---> yes,the subLines status was changed
this.model.save();

但更改并未保存。
为什么?还有其他方法可以更改模型子属性吗?

4

2 回答 2

0

由于您正在更改作为数组的属性,因此骨干无法弄清楚。更好的方法是

var subLines = this.model.get('subLines');
_.each(subLines,function(item){
    item.status = 'submitted';
})
this.model.set('subLines');

这将触发模型上的 change:subLines 事件。

于 2013-10-20T17:39:36.300 回答
0

通过直接设置模型的状态属性,您将错过模型的 set 方法提供的所有功能,包括触发“更改”事件。从您提供的详细信息中很难确定,但只需更改:

line.status = "submitted"

至:

line.set({ status: "submitted" })

可能只是解决你的问题。

于 2013-10-20T12:12:54.113 回答