Javascript 设置主干模型
在主干视图中,我有以下场景。我希望这样设置模型Javascript 设置主干模型,javascript,backbone.js,Javascript,Backbone.js,在主干视图中,我有以下场景。我希望这样设置模型 saveField : function(field, val){ //field = 'username'; val = 'Boris' model.set({field : val}); } 字段是模型中属性的字符串表示形式 问题是主干网正在创建一个名为field的新属性。 我可以这样安排 model.attributes[field] = val; 然而,我宁愿使用set 有人知道我怎么做吗? 谢谢 编辑:最后做了什么- var
saveField : function(field, val){
//field = 'username'; val = 'Boris'
model.set({field : val});
}
字段是模型中属性的字符串表示形式
问题是主干网正在创建一个名为field的新属性。
我可以这样安排
model.attributes[field] = val;
然而,我宁愿使用set
有人知道我怎么做吗?
谢谢
编辑:最后做了什么-
var asObj = new Object;
asObj[field] = val;
model.set(asObj);
查看主干这应该已经起作用了-您的呼叫只需要看起来有点不同
saveField : function(field, val){
//field = 'username'; val = 'Boris'
model.set(field, val);
}
您正在寻找的参数格式是set(键、值、选项)
。这意味着您一次只能设置一个属性,但看起来这就是您想要做的。另一种格式是set(attr,options)
,这是您正在使用的格式,但不适用于字符串键
无论如何,您不希望直接设置该属性,因为主干网在内部使用此钩子来执行引发“更改”事件之类的操作。我的操作方式与您的操作方式相同。您可以
var asObj={}代码>-较短,但是-键是字符串。您还可以model.attribytes[field]=val代码>和模型更改()
但更丑陋的是(而且afaik“改变了:”事件不会发生)@Paul这实际上似乎是在Hanks@TheDeeno中构建的,我不知道它已经被构建了。