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