backbone.js更改模型子属性不起作用

时间:2013-10-20 07:56:20

标签: javascript jquery backbone.js

我的模型定义如下:

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();

但改变没有得到保存 为什么?还有其他方法来改变模型子属性吗?

2 个答案:

答案 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事件。

相关问题