gpt4 book ai didi

meteor - 如何编写 Iron-router 嵌套模板?

转载 作者:行者123 更新时间:2023-12-03 21:44:27 26 4
gpt4 key购买 nike

我有 2 个模板:

1) mainLayout.html -> 所有页面都必须使用的一般布局。 (例如页面标题、导航栏、页脚)

Router.configure({
layoutTemplate: 'mainLayout'
})

<template name="mainLayout">
{{> header}}
<div class="container-fluid">
{{> yield}}
</div>
</template>

2) specialLayout.html -> 继承 main-layout.html 但带有附加模板的自定义布局(例如侧边/选项卡菜单)

我应该如何定义 specialLayout ?请注意 specialLayout应该在 mainLayout 中定义标题、导航栏和页脚.

如果我有路由 X 想使用 specialLayout ,我该怎么写呢?

最佳答案

目前我不知道任何简单的方法,但大多数事情都可以通过几种不太优雅的方式来实现:

  • 将您的公共(public)部分复制到单独的模板中并在两种布局中使用它们,即:
    <template name="mainLayout">
    {{> navbar}}
    <div>
    {{> content}}
    </div>
    {{> footer}}
    </template>

    <template name="specialLayout">
    {{> navbar}}
    <div>
    {{> content}}
    {{> sidebar}}
    </div>
    {{> footer}}
    </template>
  • 使您的特殊部分成为主布局中的一个选项,而不是一个单独的选项:
    <template name="mainLayout">
    ...
    <div>
    {{#if layout.renderSidebar}}
    <div class="col-2">>
    {{> yield 'sidebar'}}
    </div>
    {{/if}}

    <div class="{{#if layout.renderSidebar}} col-10 {{else}} col-12 {{/if}}">
    {{> yield}}
    </div>
    </div>
    ...
    </template>

    然后在相应的路由中启用 data 中的侧边栏:
    this.map('pathName', {
    ...
    data: function() {
    return {
    layout: {renderSidebar: true},
    ...
    };
    },
    });
  • 关于meteor - 如何编写 Iron-router 嵌套模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25926176/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com