木偶防止区域破坏

时间:2015-05-29 14:16:33

标签: backbone.js marionette

我正在使用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方法可能无法正常工作。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

preventDestroy选项可防止交换视图被破坏。这并不意味着在下次显示时不会重新渲染。确保保存视图的状态,以便下次可以正确地重建视图。