从我的理解,你可以在你的引导呼叫定义应用程序供应商是这样的: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