javascript - Marionette.js 布局仅渲染模板的单个元素

标签 javascript backbone.js requirejs marionette

我在 marionette.js 上遇到了一些问题,花了几个小时查看错误源,但我找不到错误源,我的布局没有正确渲染它的模板,它只在模板的第一个 div 中渲染元素。

这里是实际的模板,headerlayout.html:

   <div class="header-logo-bg relative" id="header_logo">
        <a href="/" title="Apps Title">
            <div class="logo"></div>
        </a>
    </div>

    <div id="home_btn">
        <a href="/">
            <div class="back_to_all_modules">
                Back to<br>
                All Modules
            </div>
        </a>
    </div>


    <div class="header_menu" id="header_menu">

    </div>

但是渲染出来的结果只有这样:

<div>
<a href="/" title="Apps Title">
    <div class="logo"></div>
</a>

这是我的主干布局:

define([
    'marionette',
    'modules/header/views/menulayout',
    'tpl!modules/header/templates/headerlayout.html'
], function (Marionette, MenuLayout, layoutTemplate) {


    var HeaderLayout = Backbone.Marionette.Layout.extend({
        template: layoutTemplate,

        regions: {
            menuRegion: '#header_menu'
        },
        initialize: function () {
            console.log('initializing header layout');
        },
        onRender: function () {
            console.log('onRender headerlayout');
            var menuLayout = new MenuLayout();
            this.menuRegion.show(menuLayout);
        }
    });

    return HeaderLayout;
});

这是从主干应用程序调用的标题布局:

define([
    'marionette',
    'modules/header/views/headerlayout'
], function (Marionette, HeaderLayout) {

    // set up the app instance
    var myApp = new Backbone.Marionette.Application();

    // configuration, setting up regions, etc ...
    myApp.addRegions({
        header: '#header',
        content: '#content',
        footer: '#footer',
        dialog: '#dialog'
    });

    myApp.addInitializer(function () {
        var headerLayout = new HeaderLayout();
        myApp.header.show(headerLayout);
    });

    // export the app from this module
    return myApp;
});

我在这里错过了什么吗?任何帮助将不胜感激,谢谢。抱歉我的英语不好。

最佳答案

在您的布局中,尝试将 onRender 函数替换为 onShow

关于javascript - Marionette.js 布局仅渲染模板的单个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17739580/

相关文章:

javascript - 如何使用 angularJS 访问 ng-repeat 生成的集合中的特定元素

javascript - 销毁事件,或将外部 DOM 项链接到 Backbone 模型

javascript - RequireJS:模块 ID 与模块名称

javascript - 优化 Durandal 的构建过程

javascript - 组件未重新加载但状态随 useState 发生变化

javascript - 非常简单的javascript来删除文本框中的值

javascript - 将无限异步回调序列转换为 Observable 序列?

javascript - Backbone.js 路由器不会在页面初始化时触发

javascript - 如何通过主干中的 ajax 调用使用其模型渲染多个 View

javascript - 使用 Gulp 和 r.js 通过 javascript 应用程序构建有什么区别?