backbone.js 将多个对象添加到一个对象

yqlxgs2m  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(161)

如何将多个对象添加到一个对象中?我有一个selectbox change事件,它有一个如下所示的处理程序:

this.selectBoxChanges = {};

onSelect: function(event){
    var p = $(event.currentTarget).attr('id');
    var obj = {};
    obj[p] = $(event.currentTarget).val();
    this.selectBoxChanges = obj;
},

我想做的是将所有对象存储在一个名为selectBoxChanges的对象中,这样当确认按钮被选中时,所有对象都会被传递到一个 Backbone.js 模型中。

onConfirm: function(){
    this.model.set(this.selectBoxChanges);
}
dgenwo3n

dgenwo3n1#

哈,你在我提交这个之前就把答案贴在下面了。我还是要把它留着听:)
原始帖子--〉
您是否尝试在对象中存储多个表单元素,或者您是否尝试在对象中存储同一列表框中的多个值?
您可以使用当前将属性添加到obj对象的相同方法将属性添加到selectBoxChanges:

selectBoxChange[this.id] = $(this).val();

但是,如果您试图对同一个对象重复执行此操作,则需要能够使用除元素id之外的其他内容,而元素id将能够由 Backbone.js 使用。
如果您想附加用户从下拉列表中选择的所有不同项目,您可以存储一个项目数组:

if(selectBoxChange[this.id]) {
  selectBoxChange[this.id].push($(this).val());
} else {
  selectBoxChange[this.id] = [$(this).val()];
}
cclgggtu

cclgggtu2#

我想答案很简单,直到我发布了帖子才发现,我所要做的就是

this.selectBoxChanges = {};

onSelect: function(event){
    var p = $(event.currentTarget).attr('id');
    this.selectBoxChanges[p] = $(event.currentTarget).val();
},
3htmauhk

3htmauhk3#

您可以为对象分配属性。属性可以是变量、函数、另一个对象、另一个属性等。

var selectBoxChanges = {
    "values" : {
        "oldValue" : oldVal,
        "newValue" : newVal
    },
    "anotherProperty": someVariable,
    "functionProperty": function () {
       // do stuff
    }
};

相关问题