Meteor:在其他模板之间插入模板并在模板之间传递数据
Meteor: insert template between other templates and transfer data between templates
我正在使用 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
模板设置一些值 ...
谢谢:)
使用 {{> yield}} 助手。这将插入您的路线所服务的任何模板。所以.
<template name="default_layout">
{{> header}}
{{> yield}}
{{> footer}}
</template>
如果您想更改 header 中的内容,您将使用“产量区域。
<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'
});
基本上,您正在为某些路由创建一个可以 re-used 的控制器,并告诉控制器将名为 "postHeader" 的模板放入 {{> yield "header"} } 区域和 "postFooter" 进入 {{> yield "footer"}} 区域。
我正在使用 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
模板设置一些值 ...
谢谢:)
使用 {{> yield}} 助手。这将插入您的路线所服务的任何模板。所以.
<template name="default_layout"> {{> header}} {{> yield}} {{> footer}} </template>
如果您想更改 header 中的内容,您将使用“产量区域。
<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' });
基本上,您正在为某些路由创建一个可以 re-used 的控制器,并告诉控制器将名为 "postHeader" 的模板放入 {{> yield "header"} } 区域和 "postFooter" 进入 {{> yield "footer"}} 区域。