Backbone.marionnette - 重新绑定事件与创建新视图

6 backbone.js backbone-events marionette

我有一个Layout有几个标签.单击其中一个选项卡将show在页面内容中显示相应的复合视图region.在不同选项卡之间来回导航后,我注意到复合视图已丢失其原始绑定,以便在集合重置和模型更改时呈现.

有没有办法在_initialEvents第二次显示视图时重新绑定复合视图中使用的事件,还是应该每次创建一个新的复合视图show

目前,我在创造我的所有观点initialize我的Layout,然后用show与被点击分页时的观点.

initialize: function(){
    _.bindAll(this);

    //     Tabs
    this.places_page   = new Places_Layout();
},

show_places_page: function(){

    this.content.show(this.places_page);
    this.places_page.delegateEvents();
},
Run Code Online (Sandbox Code Playgroud)

mar*_*308 0

对我来说这听起来不是最好的方法。

您应该使用布局的区域管理器来显示视图,而不需要您定义的函数。

我会采用这种方法

var view = new CustomView();
layout.content.show(view);`
Run Code Online (Sandbox Code Playgroud)

然后稍后:

var newView = new SecondCustomView();
layout.content.show(newView);
Run Code Online (Sandbox Code Playgroud)

如果您想继续走现在的路,那么您最好使用这种方法:

initialize: function () {
    _.bindAll(this);
},
show_places_page: function () {
    var placesLayout = new Places_Layout();
    this.content.show(placesLayout);
}
Run Code Online (Sandbox Code Playgroud)

那有意义吗?

如果没有看到更多的结构,很难提出最佳的行动方案。

您在 中创建视图有什么原因吗initialize