角依賴注入讓你注入一個字符串,函數,或者使用令牌,而不是服務類對象。如何更新依賴注入令牌值
我宣佈它在我的模塊中是這樣的:
providers: [{ provide: MyValueToken, useValue: 'my title value'}]
,我使用它是這樣的:
constructor(@Inject(MyValueToken) my_value: string) {
this.title = my_value;
}
但是,我怎麼可以更新該組件的價值,並讓其他成分得到每次新的價值?換句話說,我想模擬使用諸如BehaviorSubject
之類的東西來發射和接收值的功能。
如果這是不可能的,那麼有什麼用那些注射標記值的,如果他們只提供靜態數據,而不是我可以簡單地聲明在我的組件的靜態值,並直接使用它。
是的,你可以聲明靜態值,如果它是隻用於你應該*的一個地方。當在多個地方使用DI並且您希望保持一致性並且希望爲測試注入替代值時,DI非常有用。如果兩者都不是這樣,不要增加複雜性 - 僅僅因爲你可以,並不意味着你應該這樣做。我建議閱讀https://angular.io/guide/dependency-injection-in-action。 – jonrsharpe
@jonsharpe偉大的答案只是重點!謝謝:) –