backbone.js - Backbone.marionnette - 重新绑定(bind)事件与创建新 View

标签 backbone.js marionette backbone-events

我有一个 Layout有几个标签。单击这些选项卡之一将show页面内容中的适当复合 View region .在不同的选项卡之间来回导航后,我注意到复合 View 已经失去了在集合重置和模型更改时呈现的 native 绑定(bind)。

有没有办法重新绑定(bind) _initialEvents 中使用的事件?第二次显示 View 时的复合 View ,或者我应该每隔 I show 创建一个新的复合 View 标签?

目前我正在initialize 中创建我的所有 View 。我的Layout然后使用 show单击选项卡时的 View 。

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();
},

最佳答案

每次从选项卡切换到选项卡时,您不必创建布局/项目/复合/ Collection View ,相反,您可以按照您的方式将内容保存在变量中,您遇到的问题是变量每次要呈现内容时都会重新声明。
解决方案是您必须验证该变量(this.places_page)是否已声明,如果没有将其附加到 View 中,因此当您多次调用它时,它将保持相同的布局 View 没有任何问题,只需注意在渲染时主视图(包含区域的 View )嵌套的 subview (在区域中)将丢失,直到通过它们进行新的导航。

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

    // You can asign a diferent variable for each view so when you call show_places_page it will render with the same view.

    if (!this.places_page){
         this.places_page   = new Places_Layout();
    }

    // other tab        
    if (!this.other_page){
         this.other_page   = new OtherPage_Layout();
    }

},

show_places_page: function(){

    this.content.show(this.places_page);
    this.places_page.delegateEvents();
},

关于backbone.js - Backbone.marionnette - 重新绑定(bind)事件与创建新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15257449/

相关文章:

backbone.js - 使用 Backbone Stickit 进行 Backbone Validation - 更改属性时验证所有属性

javascript - 如何在 Mocha 测试中要求命名空间模型?

javascript - 动态填充 highcharts 数据

jquery-ui - 带有 Backbone 和 Marionette 的 Jquery UI 对话框

backbone.js - 连接主干 View 的正确方法

javascript - 为拖放界面选择 Javascript MVC 框架

javascript - 为什么这个 Backbone View 没有初始化?

json - 未捕获的类型错误 : Converting circular structure to JSON : Backbone

javascript - 提交时不会触发主干事件

backbone.js - 如何将 this.save 绑定(bind)到主干.js 模型更改事件?