2016-08-17 5 views
0

以下のようなNgModuleを作成しましたが、SomeComponentにSo​​meServiceを含める必要があります。そうでない場合は、エラーが発生します。それは正しい方法ですか?ルーティングファイルと同じですが、すでにNgModuleでインポートしたコンポーネントをインポートする必要があります。 SomeComponentでAngular2 RC5:コンポーネントとルータファイルで繰り返しインポート

@NgModule({ 
    imports:  [ CommonModule, SharedModule ], 
    declarations: [ SomeComponent ], 
    providers: [ SomeService ] 
}) 

export class TestModule { } 

import { SomeService } from "./some.service"; 

    export class SomeComponent { 
     constructor(private _someService: SomeService) { 
      this._comService.xxx 
     } 
    } 

答えて

0

これは間違いありません。 Importingを使用すると、サービスクラスのプロパティとメソッドにアクセスできるようになり、コンストラクタのパラメータへの参照を含めると、そのインスタンスを取得するためにAngularに通知されます。

あなたが(通常は)したくないことは、それを使用したいコンポーネントの内部のプロバイダとしてサービスをリストすることです。モジュールデコレータのプロバイダ配列にリストされているので、プロバイダーとして別のインスタンスを作成します。

Angular NgModule docs

0

正しいです。それでもインポートは必要です。あなたはプロバイダとディレクティブをどこにでも宣言する必要はありません。

関連する問題