Добавление нескольких объектов в один объект

#jquery #backbone.js

#jquery #backbone.js

Вопрос:

Как я могу добавить несколько объектов в один объект? У меня есть событие изменения поля выбора, у которого есть такой обработчик:

 this.selectBoxChanges = {};

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

Что я хотел сделать, так это сохранить все мои объекты в объекте, вызываемом selectBoxChanges так, чтобы при нажатии кнопки подтверждения все объекты передавались в магистральную модель. Вот так:

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

Ответ №1:

Ха, вы опубликовали ответ ниже, прежде чем я смог отправить этот. Я все равно оставлю это услышанным 🙂

исходное сообщение —>

вы пытаетесь сохранить несколько элементов формы в объекте или пытаетесь сохранить несколько значений из одного и того же списка в object?

вы можете добавлять свойства в selectBoxChanges так же, как вы в настоящее время добавляете их к своему объекту obj:

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

однако, если вы пытаетесь сделать это для одного и того же объекта повторно, вам нужно будет иметь возможность использовать что-то другое, кроме идентификатора элемента, который мог бы использоваться backbone.

если вы хотите добавить все различные элементы, выбранные пользователем из выпадающего списка, вы можете сохранить массив элементов:

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

Ответ №2:

Я думаю, ответ был прост, не видел его, пока я не опубликовал поток, все, что мне нужно было сделать, это

 this.selectBoxChanges = {};

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

Ответ №3:

Вы назначаете свойства объектам. Свойство может быть переменной, функцией, другим объектом, другим свойством и т. Д.

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