2016-04-10 6 views
0

テンプレートを残して、私はFlowRouterを使用していますし、docs of FlowRouter BlazeLayoutで、それは言う: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

私はあなたのテンプレートのコンポーネントが異なるDOM要素の内部でレンダリングされた場合、あなたのソリューションが必要であろうした唯一のケースは、と思います。

テンプレートコンポーネントの各々は、いずれにせよ、同じDOMノードでレンダリングされている場合は、単に動的nav: "navX"なくnavN: "navN"を使用して、ちょうど1つのテンプレートcomponenetを有するレンダリングするテンプレートコンポーネントを決定するのではなく、それらのすべてを指定することが不要と思われます{{>Template.dynamic template=nav}}

私はFlow-Routerに、より柔軟なテンプレートやルートグループのデフォルトテンプレートの定義がないことがわかりました。