語境
我有一個包含兩個庫的角度應用程式:DashboardLib 和 ChartsLib。在我的應用程式的一個組件上,我有一個來自 DashboardLib 的儀表板,儀表板本身使用來自 ChartsLib 的圖表。我需要定義一個全域計時器來同步我的圖表。因此,我TimerService在 ChartsLib 中創建了一個服務來處理我的 Subject 的 setInterval 以同步圖表。
圖表正在偵聽計時器服務,根應用程式正在啟動計時器。
問題
我嘗試使用providedIn: 'root'(even providedIn: 'platform') 和注入我的服務forRoot(),但我仍然無法在根應用程式和庫本身之間擁有共享服務。
我假設我不了解共享服務的作業原理,但是我不知道如何解決我的問題。
謝謝你的回復。
uj5u.com熱心網友回復:
providedIn: 'root'是正確的,但是@NgModule如果您還沒有在您的庫中包含一個宣告并將該服務作為提供者包含在內,則您還需要在您的庫中包含一個宣告。然后,根應用程式需要在其匯入中包含該模塊。
圖書館
@NgModule({
declarations: [
...
],
imports: [
...
],
providers: [
TimerService
],
exports: [
...
]
})
export class LibModule {}
根應用程式
@NgModule({
declarations: [
...
],
imports: [
LibModule
],
})
export class AppModule { }
如果還沒有,它TimerService也應該作為匯出包含public-api.ts在庫中的檔案中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/455189.html
上一篇:角度選擇所有分頁問題
