2017-08-01 7 views
0

角度2の奇妙な動作があります。 実際、私のアプリケーションはかなり簡単です。それはkys-appと呼ばれるメインページコンポーネントを持っています。その中で、テンプレートhtmlをkys-app.htmlとして指定しています。 htmlも非常に簡単です。ヘッダー、サイドメニュー、フッター、メインコンテンツの4つの部分から構成されています。ヘッダー、フッター、およびサイドメニューには、独自のコンポーネントファイルで定義された独自のテンプレートhtmlがあります。 (header.ts、footer.ts、sidemenu.ts)。 メインコンテンツはルータのアウトレットに表示される予定です。ここ がKYS-app.tsある:角2はテンプレートhtmlでカスタムタグをレンダリングしません

  import { Component, OnInit, Input, Injectable, Inject, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; 
      import { Router, RouterModule }   from '@angular/router'; 
      import { FormsModule }     from '@angular/forms'; 
      import { HttpModule, XHRBackend }  from '@angular/http'; 

      //import { HeaderComp }  from '../../components/app/header'; 
      import { FooterComp }  from '../../components/app/footer'; 
      //import { SideMenuComp } from '../../components/app/side-menu'; 
      //import { AuthGuard }  from '/app/services/auth-guard'; 

      @Component({ 
       imports: [ HttpModule, RouterModule ], 
       selector: 'kys-app', 
       templateUrl: '/app/components/app/kys-app.html', 
       directives: [ FooterComp ], 
       schemas:  [ CUSTOM_ELEMENTS_SCHEMA ] 
       // providers: [ {provide: Router, useClass: RouterModule} ] 
      }) 

      export class KYSAppComp { 

       constructor() { 
        console.log(' %% KYSAppComp %%'); 

       } 
      } 

、以下のように私のKYS-app.htmlコンテンツがある:

  <!-- Main Content --> 
       <section class="content-wrap"> 
        <div class="card-panel"> 

        <router-outlet></router-outlet> 

       <!-- Footer --> 
       <kys-footer></kys-footer> 
        </div> 

       </section> 
       <!-- /Main Content --> 

注:それを簡単にするために、一時的にIは、ヘッダとsidemenu成分を除去しました今のところ。 メインページにアクセスすると、メインコンセントがルータコンセントセクションにあり、その下にフッターの内容が表示されます。

私が見ているのは、主な内容(ルータのパス(例:/#/ login)を通してアクセスしているコンポーネントの内容)は正しく表示されていますが、kys-appの他のセクションは表示されません(例えば、フッターの内容)が表示されます。つまり、角度2はkys-app(例:)で定義されたカスタムタグを表示しません。 誰でも上記のコードを見て、私が間違っていることを教えてもらえますか? 事前に感謝し、よろしく@NgModule()に行く

+0

以前この種の問題が発生したときに、スキーマを追加しました:[CUSTOM_ELEMENTS_SCHEMA]が問題を解決しました。しかし、今回は何の違いもありませんでした。また、ディレクティブの代わりに[FooterComp]という宣言も試してみましたが、どちらも機能しませんでした。 – Yilmaz

+0

これは私のフッタです。もしあなたがそれを見たいのであれば、あなたはそれを見たいと思うかもしれません:\t \t \t \t 'コンポーネント、CUSTOM_ELEMENTS_SCHEMA} from' @ angular/core '; \t \t \t \t @Component({ \t \t \t \t \tセレクタ 'KYS-フッタ' \t \t \t \t \t templateUrl:「/アプリ/コンポーネント/アプリケーション/フッタ。HTML」、 \t \t \t \t \tスキーマ:[CUSTOM_ELEMENTS_SCHEMA] \t \t \t \t}) \t \t \t \tエクスポートクラスFooterComp { \t \t \t \tコンストラクタ(){ \t \t \t \t \t \tにconsole.log ( '%% FooterComp %%'); \t \t \t \t \t \t \t \t \t \t \t \t} \t \t \t \t \t} – Yilmaz

答えて

3

imports: []ニーズが、それはあなたが何らかの形で事前2.0.0決勝を混ぜるように見える

@NgModule({ 
    imports: [ HttpModule, RouterModule ], 
    declarations: [ FooterComp ], 

であるべき、directives: [ FooterComp ],と同じ@Component() に無効です2.0.0の最終的なスタイルを投稿してください。 コンポーネントとモジュールの作成方法の詳細については、angular.ioのドキュメントを参照してください。

+1

おかげギュンター、それはそれでした。それは私の問題を解決しました。時には、別の視点から見る必要があります:)ありがとう。 – Yilmaz

+0

嬉しいです:) –

+1

解決策を明確にするために、私はそれがどのように解決されたか説明しましょう:Günterが指摘するように、kys-appコンポーネントからインポートと指示を削除しました。 app.module.tsには既にインポートがあり、app.module.tsの宣言セクションにFooterCompを追加しました。 – Yilmaz

関連する問題