FlowRouter BlazeLayout - 省略模板

时间:2016-04-10 11:59:23

标签: javascript meteor meteor-blaze

我使用FlowRouter并在docs of FlowRouter BlazeLayout中说:

  

同样,您可以创建多个模板并在彼此之间切换。但是当您更改布局时,整个UI将再次重新渲染。

     

因此,如果可能的话,使用一些布局是个好主意。

问题:因为我在控制台上没有任何错误:是可以的还是不好的做法'当我声明一个包含我所有模板组件和每条路线的布局时,只需设置我需要的那些?

示例:

<template name="layout">
    {{> Template.dynamic template=nav1}}
    {{> Template.dynamic template=nav2}}
    {{> Template.dynamic template=main}}
    {{> Template.dynamic template=nav3}}
    {{> Template.dynamic template=footer}}
</template>

// routes.js
publicRoutes.route('/', {
    name: "index",
    action: function(params, queryParams) {
        BlazeLayout.render('layout', {
            nav1: "nav1",
            main: "index",
            footer: "footer"
        });
    }
});

1 个答案:

答案 0 :(得分:1)

我认为,只有你的模板组件在不同的DOM元素内部呈现时,才有必要使用你的解决方案。

如果每个模板组件都在同一个DOM节点中呈现,那么似乎没有必要全部指定它们,而不是仅使用nav: "navX"而不是navN: "navN"动态确定要呈现的模板组件。并且只有一个模板组件{{>Template.dynamic template=nav}}

我发现Flow-Router缺少一些更灵活的模板或路由组默认模板定义。