我有一般服務類和專用服務類以及應該使用專門服務的通用組件,具體取決於模塊。依賴注入期間的專門化類
我有UpdateFormComponent
in SharedModule
- 適用於所有其他應用模塊。在實例化過程中,我應該通過AbstractSaveService
- Module1SaveService
和Module2SaveService
的後裔。這些服務在其他模塊Module1
和Module2
中聲明。
所以文件的結構將是
\shared\shared.module.ts
update.form.component.ts
abstract.service.ts
\module1\save1.service.ts (extends AbstractSaveService)
users.component.ts (use UpdateFormComponent and Module1SaveService)
\module2\save2.service.ts (extends AbstractSaveService)
cameras.component.ts (use UpdateFormComponent and Module2SaveService)
@Component({
selector: 'update-form-component'
})
class UpdateFormComponent {
constructor (private s: AbstractSaveService) {}
}
@Component({
selector: 'users-component',
template: '<update-form-component></update-form-component>' // inject Module1SaveService
})
export class UsersComponent {}
@Component({
selector: 'cameras-component',
template: '<update-form-component></update-form-component>' // inject Module2SaveService
})
export class CamerasComponent {}
當我顯示來自Module1
(UsersComponent
)頁面,用戶按下按鈕,我想展示UpdateFormComponent
與注入Module1SaveService
。當我從Module2
(CamerasComponent
)和用戶按下按鈕的顯示頁面時,我想顯示UpdateFormComponent
並注入Module2SaveService
。我怎樣才能做到這一點?
是他們編程knowning你想創建哪一類的方法嗎?取決於全局變量,另一個服務值.... 是否在同一個主機組件內創建了2個實例?或在兩個不同的主機? – Melou
@Melou我已經爲你編輯了我的問題和答案。 – koral
謝謝。 @Gunter Zochbauer的答案對你來說可以嗎?這就是爲什麼我問是否在同一主機組件內創建了2個實例。 – Melou