Добавление модели в родительское представление из дочернего представления
Я пытаюсь добавить новую модель в родительское представление из дочернего представления.
В моем родительском представлении я отображаю дочерний вид следующим образом:
renderEngineOptions: function () {
var view = new EngineOptionsView({ model: this.model });
this.$('.engineOptions').append(view.render().el);
},
В моем дочернем представлении (engineOptionsView) я определяю родителя как this.engine в методе initialize:
initialize: function (args) {
this.engine = args.model;
}
Затем у меня есть кнопка HTML, которая при нажатии запускает это событие:
addTurbo: function() {
this.$('.turboOption').show();
this.engine.turbo = new Turbo();
}
Turbo - это новая модель, которую я пытаюсь добавить в двигатель. Но ничего не происходит. Я не получаю ошибку в консоли, но когда я записываю модель двигателя в консоли, турбо никогда не добавлялось.
Как я могу добавить турбо модель к родителю, от ребенка?
Спасибо!
1 ответ
Когда вы передаете модель с model
опция, вид автоматически применяет его к себе, так что он доступен через this.model
непосредственно.
var view = new EngineOptionsView({ model: this.model });
у ребенка:
initialize: function (args) {
this.engine = args.model; // not necessary
console.log(this.model === this.engine); // same thing
}
Вы добавляете turbo
как свойство модели
this.engine.turbo = new Turbo();
Так что если вы хотите получить turbo
от родителя:
this.model.turbo;
Если вы хотите добавить turbo
как атрибут модели из дочернего представления:
this.model.set('turbo', new Turbo());
И чтобы получить это от родителей:
this.model.get('turbo);
Без подробностей трудно догадаться, откуда возникла проблема.