2017-07-05 3 views
2

私は古いデータを永続化するためにfirebaseを使用する古いプロジェクトを見直しています。それはレストランサイトです。認証を追加し、管理者ユーザーがレストランのメニューにメニュー項目を追加したり削除したりできるようにしています。Emberの親テンプレートに子テンプレートをレンダリングしない、正確でクリーンな方法

メニュー項目を追加すると

Router.map(function() { 
    this.route('menu', function() { 
    this.route('add'); 
    }); 
}); 

モデル関数は、ネストされたルートに適切けどにより動作している、メニューテンプレートが成長し、成長し、下の追加フォームの方法をプッシュし、次のように私のルートが設定されている

倍。私の質問は、あなたがlocalhost/menu/addにいるときにlocalhost/menuがレンダリングされないようにする正しい方法は何ですか?

答えて

1

まずオプション

だから、menumenu.addルートはあまり関連していないようです。彼らは無関係な経路であるよう 最初の提案は、それらを分離されています

this.route('add-menu'); 
    this.route('show-menu'); 

番目のオプション

しかし、彼らは少し関係している場合は、より良い提案がメニュー項目をリストに新しいルートを作成することです。以下のような:

this.route('menu', function() { 
    this.route('add'); 
    this.route('list'); 
}); 

このところで、menuルートのテンプレートが空になります。

第三の選択肢

menu経路では、あなたは。menu.listmenuルートをリダイレクトするredirectフックを追加したい場合があります)しかし、私ははるかに良い提案がindexルートを使用していると思います。上記のlistルートを定義する代わりに、indexルートを使用してください。インデックスルートには、メニュー項目が一覧表示されます。

this twiddleをご覧ください。

Index Routes Ember Guidesから。

+1

まさに私が探していたものです。ありがとうございました。 –

関連する問題