Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置主干模型_Javascript_Backbone.js - Fatal编程技术网

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中构建的,我不知道它已经被构建了。