2016-09-05 16 views
2

私は、きれいで読みやすいhtmlテンプレートを構築するために少なくとも2レベルの入れ子コンポーネント/ディレクティブを使用するangular2 RC5アプリをビルドしました。テンプレート解析エラー:埋め込みテンプレートのコンポーネント

現在の構造は次のとおりです。

  • pageComponent
  • tabPageComponent(タブ付きページの一般的なセットアップ)本当のタブページの内容を構築
  • いくつかのコンポーネント(単一タブページを表します)

pageComponentを使用するだけで問題はありません。

tabPageComponentの表示にディレクティブを追加して使用すると、同様に機能します。/tabPageComponent内に他のコンポーネント/ディレクティブを追加し、使用して

は、テンプレートがエラーを解析

私にエラーがスローされます:

:埋め込まれたテンプレート上のコンポーネント

は私のHTMLは次のようになります

pageComponent.html

<p-tabView> 
    <p-tabPanel header="Tab 1"> 
     <tab-template></tab-template> /* this references tabPageComponent */ 
    </p-tabPanel> 
    <p-tabPanel header="Tab 2"> 
     Content 2 
    </p-tabPanel> 
</p-tabView> 

tabPageComponent.html

<anotherComponent></anotherComponent> 

私はちょうどtabPageComponent.htmlでプレーンなHTMLを使用してすべてが期待どおりに動作している任意のdirecivesを宣言しない場合。自己定義のディレクティブを別に追加するとエラーが発生します。

米国のネストされたディレクティブは可能ですか?遭遇したエラーの原因は何ですか?

問題の説明やエラーの発見にさらにコードが必要な場合は、質問してください。

更新

これは私の@ngModule:私の場合は

// Left out several import statements 
@NgModule({ 
    declarations: [ 
     AdminAppComponent, 
     TestComponent, 
     OrdersComponent, 
     TemplatesComponent, 
     TemplateComponent, 
     TemplatePageComponent, 
     UsersComponent, 
     UserComponent, 
     StatsComponent, 
     ProvidersComponent, 
     ProviderComponent, 
     AccessDeniedComponent, 
     LoginComponent, 
     // ComplexElementComponent, 
     // ComplexElementListComponent, 
     // BaseElementComponent, 
     // BaseElementListComponent, 
     WikiComponent, 
     GrowlComponent 
    ], 
    providers: [ 
     LocalStorageService, 
     ApicallsService, 
     AuthService, 
     FileUploadService, 
     SettingsService, 
     SystemobservablesService, 
     FormBuilder, 
     AdminAuthGuard 
    ], 
    imports: [ 
     BrowserModule, 
     FormsModule, 
     HttpModule, 
     TabViewModule, 
     //RouterModule 
     routing 
    ], 
    bootstrap: [AdminAppComponent], 
}) 
export class AdminModule { 
} 
+0

どのようなAngular2バージョンをお使いですか? '@NgModule()'をあなたの質問に追加できますか? –

+0

角度バージョンはRC5です – maxhb

+0

私のどこかに構文エラーがあります。私はあなたの構造を反映させる単純なプランカーを作成し、他の人がそれを見てテストできるようにします。 – tibbus

答えて

4

ソリューションはかなり単純です:コンポーネント用のセレクタの一つ名前を変更します。

「テンプレート」という名前のディレクティブを作成しないでください。

この名前は、作成したコンポーネントを説明していましたが、「テンプレート」もhtmlタグの名前です(説明と使用例についてはhttp://www.html.am/tags/html-template-tag.cfmを参照)。

0

私は、メインモジュールにコンポーネントをインポートしていないため、「宣言」でそれを参照していなかったからです。

関連する問題