私は角のあるアプリケーションanimals
を持っています。これは現在のルートの場所に応じて動物の画像を表示します。たとえば、/dog
は犬の画像を表示し、/cat
は猫の画像をページに表示します。角2:ルートに基づいてサービスを提供する
これを達成するために、私はAnimalBoxModule
,CatModule
およびDogModule
という3つの機能モジュールを作成しました。 AnimalBoxModule
は、コンポーネントAnimalBoxComponent
とサービスAnimalService
を持っています。 AnimalBoxComponent
はAnimalService.getPicture()
を使用して動物の画像を取得します。 DogModule
およびCatModule
は、DogService
およびCatService
を有し、それぞれAnimalService
のカスタム実装を提供して、それぞれ猫および犬の画像を表示することができる。
AppComponent
に<animal-box></animal-box>
をレンダリングしています。動物の正しい画像を表示するには、現在のルートの位置に応じてサービスの実装(CatService
またはDogService
)を提供する必要があります。どのように角度で可能ですか?事前に
おかげ
編集
は、私は、再利用可能なコンポーネントとして、それを提示していますので、サービスを利用しているAnimalBoxComponent
の変更をしたいいけません。 IMOでは、このアプリを拡張して動物サービスを増やしたいときはいつでも、それを変更するのは良い考えではありません。
hmmm ...通常、別々のサービスを使用する場合は、別々のコンポーネントを持つ方がよいでしょう。しかし、私はあなたがこれを望む方法を見ることができます。あなたは 'ActivatedRouteSnapshot'を使ってみましたか? – FussinHussin
@FussinHussinいいえ、それについて知りませんでした。それを試みるつもりです。ありがとう –
あなたは、文字列がdogやcatのような有効なルートと一致するかどうかを確認し、それに基づいてサービスを注入することができます。最も難しい部分は、条件付きでサービスを注入する方法を理解することです。 – FussinHussin