5

各ルート(およびルートオブジェクト)に対応するテンプレートを備えたルーターがあります。親とは独立して各テンプレートを表示できるようにしたいのですが、ネストされたルートが親テンプレートのアウトレットにレンダリングされないようにしたいのです。基本的に、ネストされたルートごとに個別の「ページ」を作成します。

App.Router.map(function() {
  this.resource('recipes', function() {
    this.route('new');
    this.route('show', { path: '/:recipe_id' });
  });
});

ember1.0.0-rc1を使用しています

ありがとう

4

3 に答える 3

4

親とは独立して各テンプレートを表示できるようにしたいのですが、ネストされたルートが親テンプレートのアウトレットにレンダリングされないようにしたいのです。

当たり前のことを言っているかもしれませんが、リソースのテンプレートを作成しないと、まさにそれが起こります。あなたの場合、recipes.hbsテンプレートを作成しないと、emberはとテンプレートをinにレンダリングnew.hbsします。show.hbs{{outlet}}application.hbs

注:これを行うと、Emberはコンソール警告「直接の親ルートがメインアウトレットにレンダリングされませんでした...」を出力します。

これについては、残り火ルーティングガイドで詳しく説明されています。

于 2013-03-14T03:02:53.777 に答える
1

残り火ガイドからのクイックノート

this.resourceを使用してリソースを定義し、関数を提供しない場合、暗黙のresource.indexルートは作成されません。その場合、/ resourceはResourceRoute、ResourceController、およびリソーステンプレートのみを使用します。

ルーティングは問題なく、@ mikegrassottiは正しいです、 「レシピ」(マスター/詳細なし)内にネストされた「新規」および「表示」ルートテンプレートを持たない「レシピ」のインデックスが必要な場合は、レシピを作成する必要があります。内部にコンセントのない/indexテンプレート。

<script type="text/x-handlebars" data-template-name="recipes/index">
<ul>
  {{#each}}
    <li>{{recipe}}</li>  
  {{/each}}
</ul>

ルート設定を変更する必要はありません。マイクが上で述べたように、残り火はnew.hbsとshow.hbsテンプレートをapplication.hbsの{{outlet}}にレンダリングします

于 2014-03-05T04:04:01.640 に答える
0

Ember.jsはネストルートをサポートせず、ネストリソースのみをサポートします。最終的にネストされたルートには、ルートを含めることができます。

リソースを物事と考え、ルートを行動と考えてください。

于 2013-03-14T02:42:56.457 に答える