我正在使用Marionette区域来显示基于用户无线电输入的模板:(文本/文件)。 这是我的itemview
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方法可能无法正常工作。
感谢您的帮助。
答案 0 :(得分:0)
preventDestroy选项可防止交换视图被破坏。这并不意味着在下次显示时不会重新渲染。确保保存视图的状态,以便下次可以正确地重建视图。