Я использую область Marionette для отображения шаблонов на основе пользовательского ввода радио: (текст/файл). Вот мой itemviewMarionette prevent region destroy
var fileTemplateView = Marionette.ItemView.extend({
template : "#file-upload-template"
});
и область определяется как
regions : {
composeRegion : "#compose-region",
}
и события объявлен
events : {
"click #msg-input-type input:radio" : "changedRadio"
}
и функции триггера событий является
changedRadio : function(evt) {
var self = this;
var checkedObject = evt.currentTarget;
console.log('Radio Change Event'+checkedObject.value);
if (checkedObject.value === "file") {
if (self.fileView === undefined) {
self.fileView = new fileTemplateView();
}
this.composeRegion.show(self.fileView, { preventDestroy: true });
} else if (checkedObject.value === "text") {
if (self.textView === undefined) {
self.textView = new textTemplateView();
}
this.composeRegion.show(self.textView, { preventDestroy: true });
}
Но preventDestroy метод может не работать, как определено, когда шаблон сбрасывается каждый раз, когда происходит событие радио.
Ваша помощь приветствуется.
Вы пытаетесь показать представление в регионе без повторного просмотра? – Vic
@ Vic Yup. Мой случай, когда 1) TextBox и 2) UploadFile - это доступные опции, если в случае, если пользователь переключается с одного варианта радиосвязи на другой и возвращается, он не должен потерять введенный текст или загрузить путь к файлу (имя), как в обычном html. –
У меня была аналогичная проблема раньше, см .: http://stackoverflow.com/questions/19496732/backbone-marionette-region-show-without-render – Vic