Meteor 如何编写铁路由器嵌套模板?
我有两个模板: 1)Meteor 如何编写铁路由器嵌套模板?,meteor,iron-router,meteor-blaze,Meteor,Iron Router,Meteor Blaze,我有两个模板: 1) mainLayout.html->所有页面必须使用的总布局。(例如页面标题、导航栏、页脚) Router.configure({ layoutTemplate:“主布局” }) {{>头} {{>产量} 2) specialLayout.html->继承main-layout.html但带有附加模板(例如侧/选项卡菜单)的自定义布局 我应该如何定义specialLayout?请注意,specialLayout应在mainLayout中定义标题、导航栏和页脚 如果我有路线X
mainLayout.html
->所有页面必须使用的总布局。(例如页面标题、导航栏、页脚)
Router.configure({
layoutTemplate:“主布局”
})
{{>头}
{{>产量}
2) specialLayout.html
->继承main-layout.html但带有附加模板(例如侧/选项卡菜单)的自定义布局
我应该如何定义specialLayout
?请注意,specialLayout
应在mainLayout
中定义标题、导航栏和页脚
如果我有路线X想要使用
specialLayout
,我应该如何编写它?目前我不知道任何简单的方法,但大多数事情都可以通过几种不太优雅的方式实现:
- 将常用零件复制到单独的模板中,并在两种布局中使用它们,即:
<template name="mainLayout"> {{> navbar}} <div> {{> content}} </div> {{> footer}} </template> <template name="specialLayout"> {{> navbar}} <div> {{> content}} {{> sidebar}} </div> {{> footer}} </template>
<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>
this.map('pathName', {
...
data: function() {
return {
layout: {renderSidebar: true},
...
};
},
});