我的模型定义如下:
model{
name;
number;
subLines[ ]; ->array object:subtitle,status
}
我用这种方式来改变子线属性
this.model.get("subLines").foreach(function(line){
line.status = "submited"
});
console.log(this.model);---> yes,the subLines status was changed
this.model.save();
但改变没有得到保存 为什么?还有其他方法来改变模型子属性吗?
答案 0 :(得分:0)
通过直接设置模型的状态属性,您将错过模型的set方法提供的所有功能,包括触发“更改”事件。很难从你给出的细节中确定,只需改变:
line.status = "submitted"
为:
line.set({ status: "submitted" })
可能只会解决您的问题。
答案 1 :(得分:0)
由于您正在更改属性是一个数组,因此骨干网无法解决这个问题。更好的方法是
var subLines = this.model.get('subLines');
_.each(subLines,function(item){
item.status = 'submitted';
})
this.model.set('subLines');
这将触发更改:模型上的subLines事件。