從我的理解,你可以在你的引導呼叫定義應用程序供應商是這樣的:Angular2提供商自舉VS @Component
bootstrap(
App,
[disableDeprecatedForms(), provideForms()]]
)
或在你的根組件是這樣的:
@Component({
selector: 'my-app',
providers: [disableDeprecatedForms(), provideForms()],
...
)
然而,我創建了一個需要提供表單提供者的表單驗證器插件,並且此引導僅在引導選項時起作用。我創建了一個plunk to illstrate the problem:如果將providerForms()添加到引導程序調用,則驗證程序將起作用。只要我從bootstrap調用註釋掉providerForms(),驗證器就不再工作。我認爲組件中的providerForms定義是足夠的。任何解釋?
運行時編譯器在將提供程序注入AppComponent之前創建。這種方式編譯器使用舊的窗體類到AppComponent.template.js中。 AppComponent的提供者中的方法'useFactory'僅在將令牌插入構造函數時觸發。 https://plnkr.co/edit/Ed8ao38phPNsYeHMorcg?p=preview – yurzui