2016-05-30 13 views
2

私はangle2 Tabs-Componentを作成しましたが、現在選択されているタブのためにルーティングを行いたいと思います。<router-outlet>はコンポーネントで置換されていません

これは私の試みです:

@Routes([ 
    { path: '/:title', component: TabsComponent } 
]) 
@Component({ 
    selector: 'customer-app', 
    directives: [TabsComponent, Tab, ... ,ROUTER_DIRECTIVES], 
    //providers: [TabsComponent], 
    template: ` 
     <router-outlet> 
      <tab title="Test 1"> 
       ... 
      </tab> 
      <tab title="Test 2"> 
       ... 
      </tab> 
     </router-outlet> 
    ` 
}) 
export class CustomerComponent{} 

はこれを実行しているとき、私はエラー

Error: Uncaught (in promise): EXCEPTION: Error in ./CustomerComponent class CustomerComponent - inline template:2:12 ORIGINAL EXCEPTION: No provider for TabsComponent!

を取得するので、私はTabsComponentに@Injectableを()を添加し、プロバイダのプロパティ配列でそれをlistet(コードのコメント行)。

今のところ、これはエラーなく実行されますが、TabsComponentには置き換えられません。 (タブは表示されず、結果のHTMLでは<router-outlet> <tab></tab> ... </router-outlet>はありません。<router-outlet> <tab></tab> ... </router-outlet>です)

TabsComponentがインスタンス化され、結果のHTMLのコンポーネントとして追加されたことをどのように達成できますか?

+0

捨てているあなたは、同じファイルに 'TabsComponent'を持っていますか'CustomerComponent'? –

+2

エラーを明確にすることはできません.TabComponentを正しくインポートして使用できることを確認してください。 – dfsq

+0

いいえ、私はそうではありません - 私はそれも好きではありません。 –

答えて

1

今、私は二つの点でルーティングmissunderstoodことを参照してください。 1)子コンポーネントが親のパスを必要と 2)のコンテンツの子供がちょうど

+1

''は、ルータがルーティングされたコンポーネントを追加するためのプレースホルダです。それはHTMLコンテンツを持っていないはずです。 –

関連する問題