2016-10-27 9 views
7

私は何十もの設定を試してみましたが、これを理解することはできません。子ルートを持つキャッチオールとしての角度ルータ '**'ワイルドカード?最新の2.4.0とルータ3.4.1の使用

指定されたURLを次のように

anythingotherthingは文字通り何もすることができます。

https://domain.com/profileがcatchall( '**')をトリガーする定義されたルートを引き継ぐことを期待していましたが、これは私の理解から非常に奇妙に思えます。キャッチオールは、その上に定義されていません。

const routes = [ 
    { 
    path: ':id', // hoping to pick up the wildcard as param this way 
    component: AnyComponent, 
    children: [ 
     { 
     path: 'edit', 
     component: EditComponent 
     } 
    ] 
    } 
]; 

@NgModule({ 
    imports: [ 
    CommonModule, 
    RouterModule.forChild(routes) 
    ], 
    declarations: [ 
    AnyComponent, 
    EditComponent 
    ] 
}) 
export default class AnythingModule {} 

export const routes = [ 
    { 
    path: '', 
    loadChildren: 'app/dashboard/dashboard.module' 
    }, 
    { 
    path: 'profile', 
    loadChildren: 'app/profile/profile.module' 
    }, 
    { 
    path: '**', 
    loadChildren: 'app/anything/anything.module' 
    } 
]; 

@NgModule({ 
    imports: [ 
    BrowserModule, 
    RouterModule.forRoot(routes) 
    ], 
    declarations: [AppComponent] 
    bootstrap: [AppComponent] 
}) 
export class AppModule {} 

anything.moduleこのあります

どこapp.moduleは、この持ち

上記のユースケースをAngular Router 3.4.1で使用できるようにしていますか?

+0

「AppModule」のルートはどのように見えるのですか? –

+0

これはルートの最初のセットの...輸出CONSTルート= [{ パス: ''、 loadChildren: 'アプリケーション/ダッシュボード/ dashboard.module' }、{ パス: 'プロファイル'、 loadChildren。 'app/profile/profile.module' }、 { パス: '**'、 loadChildren: 'app/anything/anything。モジュール ' } ]; –

答えて

0

ProfileModuleにはpath: ''ルートがない場合、一致するルートはなく、ルータは残りのルートとの一致を続けます。

+0

「profile」の子パスがないコンポーネントを使用しても、{ path: 'profile'、 component:ProfileComponent}にも同じ問題が発生しますか? –

+0

これはほとんどありません。 Plunkerで再現できますか? –

+1

私は明日、ヘルプのためのthxを作成しようとしています。 –

0

これは1年前に尋ねられました。しかし、私は角度5.1.2を使用していたし、これは問題#18139に解くルータとのバグが、私は修正を得るために、私package.jsonに5.2.1にアップデートした

同じ問題で自分自身を発見した

"@angular/core": "^5.2.1", 
"@angular/forms": "^5.2.1", 
"@angular/http": "^5.2.1", 

など...

関連する問題