2017-10-16 23 views
0

編集を「URLセグメントが見つかりません」私のネストされた排出口から「名前」を削除し、ルートモジュールから「アウトレット」プロパティを削除するときに、それが動作します。名前のついたコンセントを使用する前に名前のないコンセントを持つことは必須ですか?角度4ルーティング:ネストされた子ビュー:

次RouterMOdule configが整備されている:

const appRoutes: Routes = [ 

    // Public area: login (default) 
    { path: '', component: LandingPageComponent, 
    canActivate: [AuthAutoRedirectService], 
    children: [ 
     { path: '',  outlet: 'active-box', component: LoginComponent } 
    ] 
    }, 

    // Secure area 
    { path: 'secure', component: SecureAreaComponent, 
    canActivate: [AuthGuardService], 
    data: { roles: ['user'] }, 
    children: [ 

     // Dashboard (default) 
     { path: '',    outlet: 'main-content', component: DashboardComponent }, 

     // Resolutions 
     { path: 'resolutions', outlet: 'main-content', component: ResolutionsComponent }, 

     // Documents 
     { path: 'documents', outlet: 'main-content', component: DocumentsComponent }, 
    ] 
    }, 

]; 

@NgModule({ 
    imports:[ 
    RouterModule.forRoot(appRoutes) 
    ], 
    exports:[ 
    RouterModule // configured router module 
    ] 
}) 
  • router-outlet:ログオンページまたはセキュアエリアの行方 は表示| - router-outlet name="main-content"

    • localhost:4200/が正しくログインページに機能するセキュア領域内の選択されたページを表示
    • localhost:4200/secure適切メインページ

として「ダッシュボード」を示す、安全な領域を提供していセキュアエリアの他の子供にアクセスしようとすると問題が発生します。

core.es5.js:1020 ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'secure/documents' 
Error: Cannot match any routes. URL Segment: 'secure/documents' 

何が原因である可能性がありますか?

おかげで...

答えて

0

[OK]を、これはと説明:あなたは、あなたが名前を指定しない場合、それはなります(テンプレートに名前のプライマリと口を持っている必要があります https://github.com/angular/angular/issues/14830

デフォルトではプライマリ)。名前付きアウトレットは補助的です。

アウトレットは「補助」コンセントです。少なくとも「プライマリ」(別名「名前のない」)アウトレットが必要です。

関連する問題