使用 FlowRouter

与 Iron Router 相比, FlowRouter 更加模块化。

安装 FlowRouter

meteor add kadira:flow-router

渲染模板

特别是,你必须手动添加布局渲染包以与渲染引擎链接:

然后你可以通过动态模板渲染(在 Blaze 的情况下):

<template name="mainLayout">
  {{> Template.dynamic template=area}}
</template>
FlowRouter.route('/blog/:postId', {
  action: function (params) {
    BlazeLayout.render("mainLayout", {
      area: "blog"
    });
  }
});

使用参数和/或查询呈现模板

参数在路由上指定,与 Iron Router 一样:

FlowRouter.route("/blog/:catId/:postId", {
  name: "blogPostRoute",
  action: function (params) {
    //...
  }
})

但是参数不作为数据上下文传递给子模板。相反,子模板必须读取它们:

// url: /blog/travel/france?showcomments=yes
var catId = FlowRouter.getParam("catId"); // returns "travel"
var postId = FlowRouter.getParam("postId"); // returns "france"

var color = FlowRouter.getQueryParam("showcomments"); // returns "yes"