2016-03-30 24 views
1

は、私のようなルートの設定を考えてみましょう:指定されたシナリオでは角度2 routeconfigケース感度

this.router.subscribe((nextValue) => { 
     this.router.navigate(['nextValue']); 
    }); 

@RouteConfig([ 
    { path: '/login', name: 'Login', component: LoginPageContainer } 
]) 

次のように角度2でルータに加入することが可能です次の値は、「ログイン」ではなく「ログイン」のようにすべて小文字になります。 routeconfigは、大文字の開始で名前を定義するので、パスは解決されません。

routeconfigの名前を大文字小文字を区別しないようにすることは可能ですか、正しくケース名を取得する方法はありますか?私は検索していますが、これで何かを見つけることができません。

+0

私はここにRC1のためにこの質問に答えました:http://stackoverflow.com/a/37613743/6419372 –

答えて

2

nameフィールドは、ルート・パスとの潜在的な混乱を避けるためにPascalCase で綴られなければならないルート名です。

回避策を取りたい場合は、navigateByUrlを使用して問題なく動作させることができます。その方法はURL &に基づいてInstructionになり、そのルートに関連付けられたコンポーネントがロードされます。

​​
+0

パーフェクトは、urlでナビゲートするには、その場で働いて、私のニーズにぴったりの選択肢でした。他の視聴者のために、あなたのコードは少し外れており、リダイレクトの呼び出しは、文字をエスケープするのを避けるためにスラッシュである必要があります。 this.router.navigateByUrl( '/' + 'nextValue'); – CreativeAbyss

+0

@CreativeAbyssが更新されました.CreativeAbyssは更新されました...しかし、なぜあなたはそのようにしていますか..私はまだそれについて疑問を抱いています.. –

+0

私のコンポーネントのCanActivate()フックでfalseを返すことに加えて、ルータがURLを変更したときに、認証/セッションサービスへのクイックチェックがユーザーが認証されていないことを示す場合、私はログインページにリダイレクトします。 – CreativeAbyss