我有一個角度應用程序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