0
我正在使用Marionette区域来显示基于用户无线电输入的模板:(文本/文件)。 这里是我的ItemView控件Marionette防止区域破坏
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