设置骨干模型

setting backbone models

本文关键字:模型 设置      更新时间:2023-09-26

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

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

字段是模型中属性的字符串表示形式。

问题是backbone创建了一个名为field的新属性。我可以这样设置

model.attributes[field] = val;

但是,我宁愿使用set。

有谁知道我是怎么做到的吗?由于

edit: end up doing -

var asObj = new Object;
asObj[field] = val;
model.set(asObj);

查看主干源代码,这应该已经工作了 -您的调用只需要看起来有点不同。

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

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

无论如何,你都不想直接设置这个属性,因为backbone在内部使用这个钩子来做一些事情,比如引发'changed'事件。