我有一个角度应用程序animals
,根据当前路线位置显示动物图片。例如,/dog
将显示狗图片,/cat
将在页面上显示猫图片。角2:提供基于路线的服务实施
为了实现它,我创建了3个功能模块 - AnimalBoxModule
,CatModule
和DogModule
。 AnimalBoxModule
具有组件AnimalBoxComponent
和服务AnimalService
。 AnimalBoxComponent
使用AnimalService.getPicture()
来获得动物的图像。 DogModule
和CatModule
具有DogService
和CatService
,它们可以分别用于提供自定义实现AnimalService
来显示猫和狗的图片。
我正在渲染<animal-box></animal-box>
在AppComponent
。要显示正确的动物图片,我必须根据当前的路线位置提供服务实施(CatService
或DogService
)。 Angular中怎么可能?
由于提前
编辑
我不想让这是使用该服务,因为我提出它作为一个可重用组件在AnimalBoxComponent
任何变化。国际海事组织,只要我们想扩展这个应用程序来获得更多的动物服务,改变它并不是一个好主意。
嗯......通常最好是有独立的组件,如果他们使用不同的服务。但我可以看到你怎么会想要这个。你尝试过使用'ActivatedRouteSnapshot'吗? – FussinHussin
@FussinHussin不,不知道。去尝试一下。谢谢 –
你可以检查一个字符串是否与激活的路由相匹配,如狗或猫,并根据它注入服务。最难的部分将是搞清楚如何有条件地注入服务。 – FussinHussin