(很抱歉,下一段很難解析,我發現這在描述DI時總是會發生)。Angular2:實例級的依賴注入
我有一個現有的組件,稱之爲Widget
。
Widget
通過ng2DI接收到Thingy
。而Thingy
又通過DI接收ThingyPart
。
現在我正在編寫一個新組件,稱之爲WidgetList
。 WidgetList
最終會進入循環並創建多個Widget
s。這些Widget
中的每一個的主要不同之處在於它們每個都需要將不同的ThingyPart
注入到它們的Thingy
中。 WidgetList
,只有WidgetList
,知道如何構造那些ThingyPart
s,並且它需要當前循環變量來構造。
最終需要發生的是我需要爲每個循環迭代提供一個不同的ThingyPart
。有沒有什麼辦法可以實現這一點,而不用觸摸Widget
?
替代問題:我注意到我可以在我的WidgetList中使用receive the raw Injector。有沒有辦法動態地添加和刪除我的viewchildren使用注入器API看到的子注入器?如果有,那麼我可以在循環中創建一個新的子注入器並刪除舊注入器。 (你知道什麼是酷嗎?一個「提供」模板指令,爲我做這個)
是'Thingy'角度分量? – shusson
不,它是@Injectable。只是一個服務 – masonk
我會在'Thingy'上避開DI,並在'Widget'中實例化它。這聽起來像一個組合vs依賴關係問題http://stackoverflow.com/questions/21022012/difference-between-dependency-and-composition – shusson