2016-11-29 13 views
1

私は最近アーキテクチャを再レイアウトし、すべてのコンポーネント用にモジュールを作成しました。これは素晴らしいです。しかし、私は単に他のコンポーネントにコンポーネントをインポートするだけで、その理由を完全にはわからないという問題があります。私はこのようにインポートしています:角2はモジュールを使用して他のコンポーネントにコンポーネントをインポートすることができません

import {TrackingComponent} from './tracking/tracking.component'; 

と私のセレクタは単純です:

<tracking></tracking> 

私はこれを実行したときに私が手:

error_handler.js:46例外:キャッチされない(約束では) :エラー:テンプレート解析エラー: 'トラッキング'は既知の要素ではありません:

私は間違っていると思いますか?モジュール/コンポーネントの区別は現時点では少し泥だらけです。ありがとう。

+0

を使用しようとしているコンポーネントの他のモジュールに、である何でもモジュール? – eugene

答えて

3

コンポーネントクラスを他のクラスにインポートする必要はありません。これは絶対に何もしません(Angularの文脈では)、そのクラスを別のファイルで使うことができます。あなたがする必要がどのような

@NgModule.importsあるコンポーネントは、あなたがあなたのTrackingComponentを更新することができ、他のコンポーネント

@Component({ 
    selector: 'other' 
}) 
class OtherComponent {} 

@NgModule({ 
    declarations: [ OtherComponent ], 
    exports: [ OtherComponent ] 
}) 
class OtherModule {} 

@Component({ 
    selector: 'consumer', 
    template: '<other></other>' 
}) 
class ConsumerComponent {} 

@NgModule({ 
    imports: [ OtherModule ], 
    declarations: [ CosumerComponent ], 
    exports: [ ConsumerComponent ] 
}) 
class ConsumerModule {} 
+0

ありがとう、これは動作するようです。 Navコンポーネントをモジュールなしで別のコンポーネントにインポートしたため、モジュールを使用するのではなく、うまく動作するので、奇妙です。 –

+0

コンポーネントが同じモジュール内で宣言されている場合、それは機能します。これはまさにそれです。あるコンポーネントが別のモジュールで宣言されている場合は、そのコンポーネントを対象モジュールにインポートする必要があります。 –

関連する問題