У меня есть модуль, который называется GridView, в котором я продлить Marionette.ItemView как ниже:марионеток View - не удалось повторно шаблону
GridView.View = Marionette.ItemView.extend({
template: "#grid-view-template",
showGrid: function(gridName) {
....
},
....
}
Всякий раз, когда сетка будет отображаться вызывающий расширяет GridView и вызывает метод ShowGrid с параметром (как указано ниже)
//Module A code
var View = GridView.View.extend({
});
....
someregion.view.showGrid("GridA");
//Module B code
var View = GridView.View.extend({
});
....
someOtherregion.view.showGrid("GridB");
проблема заключается в том, что, когда я показываю сетку первым, а затем нажмите кнопку (на некотором меню), чтобы показать сетку B, я получаю пустой экран. Если я вернусь к Grid A, он отобразит сетку. Если я сначала покажу Grid B, он отображает Grid, но получает пустой экран при нажатии Grid A. (т. е. отображается только сетка, которая вызывается в первую очередь). Я всегда могу вернуться к сетке, которая показана первая и является показывает :-(
В момент отчаяния я сделал следующее:
а) Удалены шаблон из GridView
б) Добавлено шаблон для каждого модуля
Если я сделаю это, он работает, как ожидалось (фрагмент кода ниже)
GridView.View = Marionette.ItemView.extend({
//template: "#grid-view-template", (COMMENTED OUT)
showGrid: function(gridName) {
....
},
....
}
//Module A code
var View = GridView.View.extend({
template: "#gridA-template",
});
....
view.showGrid("GridA");
//Module B code
var View = GridView.View.extend({
template: "#gridB-template",
});
....
view.showGrid("GridB");
Когда каждый View, который расширяет GridView имеет O wn все работает хорошо - было бы признательно, если бы кто-то мог пролить свет на это.
Хотя это работает для меня, его боль, поскольку каждый модуль, который должен показать сетку необходимо определить свой собственный шаблон с другим ID Сам шаблон довольно прост
<div id="grid-view-div3"></div>
заранее спасибо
Джозеф
Вы не хотите, чтобы 'var view = new GridView.View.extend ({..})'? – akotian
Не могли бы вы опубликовать метод showGrid? – seebiscuit
Я думал, что ваш вопрос был убедителен, поэтому я создал для него [jsFiddle] (https://jsfiddle.net/Seabiscuit/qrfLvLme/1/). Как вы правильно приняли вначале, вам нужен только один шаблон для базового представления, и он будет ** повторно использован ** соответствующим образом. [Взгляните] (https://jsfiddle.net/Seabiscuit/qrfLvLme/1/). – seebiscuit