设置骨干模型

时间:2011-12-14 02:34:28

标签: javascript backbone.js

我在骨干视图中有以下场景。我希望像这样设置模型。

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

1 个答案:

答案 0 :(得分:4)

查看主干source 这应该已经有效 - 您的通话需要看起来有点不同。

saveField : function(field, val){
    //field = 'username'; val = 'Boris'
    model.set(field, val);
}

您正在寻找的参数格式为set(key, value, options)。这意味着您一次只能设置一个属性,但看起来就像您想要做的那样。替代格式为set(attr, options),这是您正在使用的格式,但不适用于字符串键。

无论如何,您不希望直接设置属性,因为骨干在内部使用此挂钩来执行诸如引发“已更改”事件之类的操作。