2017-07-23 52 views
1

我使用DI注入幾個組件的服務。現在它不起作用。如何僅保留幾個組件的服務實例?

如何僅爲多個組件保留一個服務實例?

我TRIE如果添加提供商app.module加載服務節providers

+4

然後你應該有一個單身人士。提供一個完整的最小范例來重現問題。 –

回答

3

@NgModule({providers: [MyService]})(和其他地方),那麼只會有只有一個的MyService實例在您的應用程序。

只有當@NgModule()裝飾器位於非惰性加載模塊上時,纔會發生這種情況。延遲加載模塊的提供者可以使用forRoot導入,以確保它們也是單身。

如果您將服務添加到@Component({ providers: [...]}),那麼會有與此組件的實例數量相同的實例。