0

ルートを設定しました

this.route('force', {
 path: '/force',
 template: 'showForce',
 layoutTemplate: 'mainpanel'
});

テンプレートはshowForceとてもシンプル

<template name="showForce">
  <p>show force</p>
</template>

mainPanelテンプレそのまま

 <template name="mainpanel">
   {{ yield }}
 </template>

しかし、そのテンプレートにはこのような親があります

<template name="page_logged_in">
  {{> header}}

  <div id="side-panel">
    {{> sidepanel}}
  </div>

  <div id="main-panel">
    {{> mainpanel}}
  </div>
</template>

ルートはテンプレートをページにレンダリングしますが、yield位置にはレンダリングしません。page_logged_inテンプレートの DOM 兄弟として表示されます。

なぜこれが起こっているのですか?

ありがとう

4

2 に答える 2

1

Iron Router に慣れるには少し注意が必要です。{{> templateName}} でテンプレートを挿入しようとする代わりに、名前付き yield 機能を使用し、Iron Router にテンプレートを配置させる必要があります。コードに基づいてデモ リポジトリを作成し、希望する結果を達成する方法を示しました。https ://github.com/copleykj/ConnorAtherton にあります。

于 2013-12-19T06:24:00.177 に答える
0

ルーターの設定も忘れずに

Router.configure({
    layoutTemplate: 'mainpanel'
});

あなたのルートもこのようなものでなければなりません

this.route('showForce', {
    path: '/force',
    layoutTemplate: 'mainpanel'
});

「テンプレート」は最初のパラメーターである必要があります。layoutTemplate が構成されていない場合、鉄のルーターはボディを利回りとして使用していると思います。

于 2013-12-16T23:49:52.380 に答える