J'ai une application angulaire animals
, qui affiche une image d'un animal en fonction de l'emplacement actuel de l'itinéraire. Par exemple, /dog
affichera l'image du chien et /cat
affichera l'image du chat sur la page. Pour ce faire, j'ai créé 3 modules de fonctions - AnimalBoxModule
, CatModule
et DogModule
. AnimalBoxModule
a un composant AnimalBoxComponent
et un service AnimalService
. AnimalBoxComponent
utilise AnimalService.getPicture()
pour obtenir l'image de l'animal. DogModule
et CatModule
a DogService
et CatService
qui peut être utilisé pour fournir une implémentation personnalisée de AnimalService
pour afficher l'image de chat et de chien respectivement. Je donne <animal-box></animal-box>
dans le AppComponent
. Pour afficher la bonne image de l'animal, je dois fournir la mise en œuvre du service (CatService
ou DogService
) en fonction de l'emplacement actuel de l'itinéraire. Comment est-ce possible en Angulaire?Angulaire 2: Mise en œuvre du service basée sur les routes
Merci à l'avance
Modifier
Je ne veux pas faire des changements dans AnimalBoxComponent
qui utilise le service, parce que je présente comme un composant réutilisable. OMI, ce ne serait pas une bonne idée de le changer chaque fois que nous voulons étendre cette application pour avoir plus de services aux animaux.
hmmm ... il est généralement préférable d'avoir des composants séparés s'ils utilisent des services différents. mais je peux voir comment tu pourrais vouloir ça. Avez-vous essayé d'utiliser 'ActivatedRouteSnapshot'? – FussinHussin
@FussinHussin Non, je ne le savais pas. Je vais essayer ça. Merci –
vous pouvez vérifier pour voir si une chaîne correspond à la route activée, comme chien ou chat, et injecter le service basé sur cela. le plus difficile sera de trouver comment injecter un service de manière conditionnelle. – FussinHussin