我使用Meteor创建Web应用程序。我已经定义了我的布局:
<template name="default_layout">
{{> header}}
body code here
{{> footer}}
</template>
这是我的路由文件:
Router.configure({ layoutTemplate: 'default_layout'
});
Router.map(function() { this.route('post_list', {path: '/'});
});
因此。我有两个问题:
post_list
进入default_layout
模板的正文代码?post_list
模板会为header
模板... 谢谢:)
答案 0 :(得分:2)
使用{{&gt; yield}}帮助器。这将插入您的路线所服务的任何模板。如此。
<template name="default_layout">
{{> header}}
{{> yield}}
{{> footer}}
</template>
如果您想更改标题中的内容,您将使用“yield regions。
<template name="default_layout">
{{> yield "header"}}
{{> yield
{{> yield "footer"}}
</template>
然后,在路径控制中,您可以这样做:
PostController = RouteController.extend({
yieldRegions: {
'postHeader': {to: 'header'},
'postFooter': {to: 'footer'}
}
})
然后在你的post_list路线中,执行以下操作:
Router.route('post_list', function(){
controller: 'postController'
});
基本上,您正在创建一个可以重复用于某些路由的控制器,并告诉控制器将一个名为“postHeader”的模板放入{{&gt;将“header”}}}和“postFooter”输入{{&gt;屈服“页脚”}}区域。