2017-09-16 14 views
0

私はAngularJS 2ルートで作業しています。私は固定ヘッダーと動的サイドバーと動的コンテンツを持つ1つのレイアウトを持っています。私は以下のルートを作成しました:複数のルートに1つのアウトレット角度2

const appRoutes: Routes = [ 
    { 
    path: '', component: DashboardComponent, children: [ 
     { path: '', component: HeaderComponent, outlet: 'header' }, 
     { path: '', component: SidebarComponent, outlet: 'sidebar' }, 
     { path: '', component: ContentComponent, outlet: 'content' }, 
     { path: 'profile', component: ProfileComponent, outlet: 'content' } 
    ], 
    }, 
    { path: 'login', component: LoginComponent }, 
]; 

私は自分のホームページ、つまりhttp://localhost/にアクセスするとうまくいきます。私が必要とするのはプロフィールページだけです。私のコンテンツアウトレットは、私のホームページと同じヘッダーとサイドバーの内容を保持するように変更する必要があります。 主なことは/プロファイルページにアクセスするときに、同じヘッダーとサイドバーのコンテンツが表示され、コンテンツコンセントのコンテンツのみが変更され、自分のプロファイルコンテンツデータが表示されるはずです。

私はrouterLink

[routerLink]="['/profile']" 

答えて

0

ContentComponentの子として/プロフィールを移動してみてください、次の作成しました。

const appRoutes: Routes = [{ 
    path: '', component: DashboardComponent, children: [ 
    { path: '', component: HeaderComponent, outlet: 'header' }, 
    { path: '', component: SidebarComponent, outlet: 'sidebar' }, 
    { path: '', component: ContentComponent, outlet: 'content' 
     children: [ 
     { path: 'profile', component: ProfileComponent } 
     ] 
    }, 
    ]}, 
    { path: 'login', component: LoginComponent }, 
]; 

EDIT 1

はたぶん、あなたは、あなたが名前の店とあなたのテンプレートのための一般的なコンセントを持つことが可能なLayoutComponentを作成しようとすることができます。以下のような

何かが:この要素にマッチした つ以上の構成要素:

const appRoutes: Routes = [ 
    { path: '', component: LayoutComponent, 
    children: [ 
     { path: '', component: HeaderComponent, outlet: 'header' }, 
     { path: '', component: SidebarComponent, outlet: 'sidebar' }, 
     { path: '', component: ContentComponent, 
     children: [ 
      { path: '', component: DashboardComponent } 
      { path: 'profile', component: ProfileComponent } 
     ] 
     }, 
    ] 
    }, 
    { path: 'login', component: LoginComponent } 
]; 


// LayoutComponent template 
<router-outlet name="header"></router-outlet> 
<router-outlet name="sidebar"></router-outlet> 
<router-outlet></router-outlet> 
+0

はこのエラーを取得します。 特定の要素に一致するコンポーネントのセレクタが1つだけであることを確認してください。 競合するコンポーネント:ProfileComponent、ContentComponent。両方ともURLに基​​づいてHTMLをレンダリングする必要があるため、同じセレクタ、つまりの両方を指定しました。これを修正する方法はありますか? –

+0

更新されたレスポンスを確認してください。ルーティングについての公式ガイドもここにあります:https://angular.io/guide/router – Sonicd300

関連する問題