親ルートにアクセスする場合はインデックスルートにリダイレクトする方法を見つけようとしていますが、ユーザーがparent.child1またはparent.child2ルートにアクセスする場合はリダイレクトできません。親ルートのみインデックスにリダイレクト
これは可能でしょうか?
this.route('parent', function() {
this.route('child1');
this.route('child2');
});
親ルートにアクセスする場合はインデックスルートにリダイレクトする方法を見つけようとしていますが、ユーザーがparent.child1またはparent.child2ルートにアクセスする場合はリダイレクトできません。親ルートのみインデックスにリダイレクト
これは可能でしょうか?
this.route('parent', function() {
this.route('child1');
this.route('child2');
});
parent
ルートのbeforeModel
フックの内側にあなたのリダイレクト条件を入れてください。
Luxの答えを参照してください。 、
ember g route parent/index
を使用して、親ルートの下index
ルートを作成し、あなたのリダイレクトロジックは、親/インデックスルートのbeforeModel
フックの内側に置きます。
私の以前の回答は、子供のルートが入るのをブロックするため、うまくいきません。
これにより、 'child1'または' child2'を入力できなくなります。 – Lux
ルートがリダイレクトできるのは、特定の条件が満たされていない場合にのみリダイレクトできますか? –
はい、ラックスは、あなたは 'parent.index'ルートの中でそれを行うこともできます。しかし、その場合、まだ存在しないので新しい 'index'ルートを生成しなければなりません。 –
私が正しくあなたを理解していれば、あなたがこの希望:ユーザーがparent
ルートではなく、child1
ではなくchild2
ルートである場合
は
index
ルートにリダイレクトします。
このために暗黙のparent.index
ルートがあることを理解する必要があります。だからあなたのルート定義と、これはあなたのルートです:
index
parent.index
parent.child1
parent.child2
あなただけのルートparent
にすることはできません! parent.index
、parent.child1
、またはparent.child2
のいずれかになります。
parent.index
からindex
にリダイレクトすることをお勧めします。
この場合、app/routes/parent/index.js
ルートを作成し、beforeModel
フックコールthis.transitionTo('index');
を作成します。
まさに私が欲しかったことをありがとう! – jpoiri
あなたの問題を説明できるとすれば、これで解決できると思われる方が良いでしょう。 –