Backbone.js - передача 2 моделей в 1 вид
Я пытаюсь передать 2 модели в представление, но, похоже, он не работает. Вот мой пример: http://jsfiddle.net/kahhor/jp4B6/14/ Как вы видите, второе предупреждение показывает undefined...
Может быть, у меня неправильный подход. То, что я пытаюсь сделать, это: View1
связать событие 'change'
с Model1
... Затем, нажав кнопку в View2
, вызовите функцию в Model1
, которая изменяет значение, и автоматически выводит View1
, поскольку он был привязан для изменения события.
Но не забывайте, что View2
имеет также свой собственный Model2
, который я создал вне представления, и передал его как new View2({model:Model2});
.
Сначала это выглядело сбивающим с толку, но я думаю, что это просто, что может сделать позвоночник. Я просто не знаю, как это сделать:)
Спасибо,
Ответы
Ответ 1
вы можете получить доступ к настраиваемым параметрам (опциям) из
window.PopupView = new PopupView({ model: LeftNotificationM, model2: PopupM});
вот так:
window.PopupView = Backbone.View.extend({
// code left out
initialize: function () {
this.model.bind('change:notification_num', this.render);
alert(this.model);
// your model2 option:
alert(this.options.model2);
},
// code left out
});
Заключение: "непризнанные параметры" представления можно найти в this.options
Ответ 2
Я только что нашел этот вопрос, а Sled ответил через Google, и это очень помогло мне, но просто чтобы обновить этот 2-летний вопрос и, возможно, спасти некоторых других роботов от головной боли:
Магистральные виды больше не присоединяют параметры, переданные в конструктор как this.options, но вы можете сделать это самостоятельно, если хотите.
Виталий Отвечать на аналогичный вопрос показывает вам, как:
initialize : function (options) {
this.options = options || {};
}
Ответ 3
Добавьте этот патч и передайте любые параметры, чтобы просмотреть.
Backbone.View.prototype._configureWithoutThis = Backbone.View.prototype._configure;
Backbone.View.prototype._configure = function(options) {
this._configureWithoutThis(options);
_.extend(this, this.options);
}