Meteor:在其他模板之间插入模板,并在模板之间传输数据

时间:2015-03-05 17:40:17

标签: meteor

我使用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: '/'});
});

因此。我有两个问题:

  1. 如何使模板post_list进入default_layout模板的正文代码?
  2. 根据映射页面的每个布局,可能分别更改页眉和页脚内容。那么,模板之间如何联系?例如,post_list模板会为header模板...
  3. 设置一些值

    谢谢:)

1 个答案:

答案 0 :(得分:2)

  1. 使用{{&gt; yield}}帮助器。这将插入您的路线所服务的任何模板。如此。

    <template name="default_layout">
       {{> header}}
       {{> yield}}
       {{> footer}}
    </template>
    
  2. 如果您想更改标题中的内容,您将使用“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;屈服“页脚”}}区域。