我在骨干视图中有以下场景。我希望像这样设置模型。
saveField : function(field, val){
//field = 'username'; val = 'Boris'
model.set({field : val});
}
该字段是模型中属性的字符串表示。
问题是骨干是通过字段名称创建一个新属性。 我可以这样设置
model.attributes[field] = val;
但是,我宁愿使用set。
任何人都知道如何做到这一点? 感谢
编辑:结束了 -
var asObj = new Object;
asObj[field] = val;
model.set(asObj);
答案 0 :(得分:4)
查看主干source 这应该已经有效 - 您的通话需要看起来有点不同。
saveField : function(field, val){
//field = 'username'; val = 'Boris'
model.set(field, val);
}
您正在寻找的参数格式为set(key, value, options)
。这意味着您一次只能设置一个属性,但看起来就像您想要做的那样。替代格式为set(attr, options)
,这是您正在使用的格式,但不适用于字符串键。
无论如何,您不希望直接设置属性,因为骨干在内部使用此挂钩来执行诸如引发“已更改”事件之类的操作。