javascript - Backbone.Marionette 布局 : Access region. 直接layout.view

标签 javascript backbone.js marionette

我有一个 Marionette 应用程序,它有多个区域。

App.addRegions({
    pageRegion: '#page',
    contentsRegion :'#contents'
}); 

作为 App.pageRegion 的一部分,我添加了一个布局。

App.ConfiguratorLayout = Marionette.Layout.extend({
    template: '#configurator-page',
     regions: {
       CoreConfiguratorRegion: '#Core-Configurator-Region',
       SomeOtherRegion:'#someOtherregion'
   }
});

此布局在应用程序启动之前呈现。

App.addInitializer(function() {
 var configLayout = new App.ConfiguratorLayout();
 App.pageRegion.show(configLayout);
});

稍后在应用程序中,我只需要更改 configLayout 的内容。

我正在努力实现这样的目标。 App.pageRegion.ConfiguratorLayout.CoreConfiguratorRegion.show(someOtherLayout);

除了在 App.pageRegion 的 $el 上使用 DOM 选择器之外,还有其他方法可以做到这一点吗?

App.pageRegion.$el.find('#...')

最佳答案

不要在应用程序初始化程序中,而是将 configLayout 初始化代码移动到可以保留对其引用的 Controller 中,然后在其某个区域中 show() 某些内容.

// pseudocode:

ConfigController = Marionette.Controller.extend({

    showConfig: function() {

        var layout = new App.ConfiguratorLayout();
        App.pageRegion.show(configLayout);

        var someOtherLayout = new App.CoreConfiguratorLayout();
        layout.coreConfiguratorRegion.show(someOtherLayout);

        // ... maybe create and show() some views here?

    }

});

App.addInitializer(function() {
    var controller = new ConfigController();

    // more likely this would be bound to a router via appRoutes, instead of calling directly
    controller.showConfig();
});

关于javascript - Backbone.Marionette 布局 : Access region. 直接layout.view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21894213/

相关文章:

javascript - 使用 Backbone 事件来切换 Collection View 属性或 jQuery.siblings()?

backbone.js - 在 onClose 处理程序中触发时 ItemView 事件不起作用

backbone.js - Jinja2、Backbone.js 和渐进增强

jquery - Marionette Composite View 数据填充错误

javascript - 为什么我的主干集合包含空模型项?

javascript - Symbol.Iterator - 传递参数

javascript - 如何使用 Mechanize 处理 JavaScript?

backbone.js - 覆盖 Marionette compositeview 渲染的正确方法是什么

javascript - 使用 AngularJS 创建实时 feed

javascript - 将 html(文本)转换为 jQuery 对象 : lost value