2017-02-28 10 views
0

親ルートにアクセスする場合はインデックスルートにリダイレクトする方法を見つけようとしていますが、ユーザーがparent.child1またはparent.child2ルートにアクセスする場合はリダイレクトできません。親ルートのみインデックスにリダイレクト

これは可能でしょうか?

this.route('parent', function() { 
     this.route('child1'); 
     this.route('child2'); 
}); 
+0

あなたの問題を説明できるとすれば、これで解決できると思われる方が良いでしょう。 –

答えて

0

parentルートのbeforeModelフックの内側にあなたのリダイレクト条件を入れてください。

Luxの答えを参照してください。 、

ember g route parent/index 

を使用して、親ルートの下indexルートを作成し、あなたのリダイレクトロジックは、親/インデックスルートのbeforeModelフックの内側に置きます。

私の以前の回答は、子供のルートが入るのをブロックするため、うまくいきません。

+0

これにより、 'child1'または' child2'を入力できなくなります。 – Lux

+0

ルートがリダイレクトできるのは、特定の条件が満たされていない場合にのみリダイレクトできますか? –

+0

はい、ラックスは、あなたは 'parent.index'ルートの中でそれを行うこともできます。しかし、その場合、まだ存在しないので新しい 'index'ルートを生成しなければなりません。 –

1

私が正しくあなたを理解していれば、あなたがこの希望:ユーザーがparentルートではなく、child1ではなくchild2ルートである場合

indexルートにリダイレクトします。

このために暗黙のparent.indexルートがあることを理解する必要があります。だからあなたのルート定義と、これはあなたのルートです:

  • index
  • parent.index
  • parent.child1
  • parent.child2

あなただけのルートparentにすることはできません! parent.indexparent.child1、またはparent.child2のいずれかになります。

parent.indexからindexにリダイレクトすることをお勧めします。

この場合、app/routes/parent/index.jsルートを作成し、beforeModelフックコールthis.transitionTo('index');を作成します。

+0

まさに私が欲しかったことをありがとう! – jpoiri

関連する問題