2017-11-06 11 views
0

私は明らかに依存関係インジェクションで何かを理解していません。私は他のサービスを利用するサービスを持っています。私は、両方を同じコンポーネントで提供したいと考えています。 MediatorServiceQuoteCompositionServiceと呼ばれる別のサービスを使用するサービスであるプロバイダのサービスを追加するとヌルに設定されます

@Component(
    /// ... 
    providers: const [ 
     MediatorService, 
    ]) 
class ReviewTableComponent implements OnDestroy, OnInit { 
    final MediatorService _mediatorService; 

    ReviewTableComponent(
    this._mediatorService, 
); 

    /// ... 
} 

:私のコンポーネントは次のようになります。このように、コンポーネントはうまくレンダリングされ、MediatorServiceのメソッドを呼び出すことができます。明らかに、QuoteCompositionServiceを使用するものは、他の場所では提供されていないため、失敗します。

私はこの

@Component(
    /// ... 
    providers: const [ 
     QuoteCompositionService, 
     MediatorService, 
    ]) 
class ReviewTableComponent implements OnDestroy, OnInit { 
    final QuoteCompositionService _quoteCompositionService; 
    final MediatorService _mediatorService; 

    ReviewTableComponent(
    this._quoteCompositionService, 
    this._mediatorService, 
); 

    /// ... 
} 

のように、同じ構成要素にQuoteCompositionServiceを追加するのであれば、私はMediatorService上のすべてのメソッドを呼び出すことができることを期待します。 ただし、_mediatorServicenullであるというエラーが表示されるようになりました。プロバイダリストにQuoteCompositionServiceを追加すると、なぜ_mediatorServicenullになるのですか?

ReviewTableComponentをインスタンス化する前にQuoteCompositionServiceを用意しておく必要があると仮定します。しかし、私はなぜ_mediatorServicenullになるのか理解していません。

ここには、MediatorServiceの一部があります。 (たぶん私はここで何か他のことをしているはずですか?)

@Injectable() 
class MediatorService { 
    final QuoteCompositionService _quoteCompositionService; 

    /// ... 

    MediatorService(
    this._quoteCompositionService, 
    /// ... 
); 
    /// ... 
} 

答えて

0

Nevermind。 QuoteCompositionServiceプロバイダーのリストにタイプミスがありました。どうやらタイプミスがあっても、コンパイルに失敗することはありません。

関連する問題