#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
}
};