Bootstrap与@component中的Angular2提供程序
根据我的理解,您可以在引导程序调用中定义应用程序提供程序,如下所示:
bootstrap( App,[disableDeprecatedForms(),provideForms()]] ) 或者在你的根组件中,如下所示: @Component({ selector: 'my-app',providers: [disableDeprecatedForms(),provideForms()],... ) 但是,我创建了一个表单验证器插件,该插件需要provideForms提供程序,并且此指令仅在引导选项时有效.我创建了一个plunk to illstrate the problem:验证器工作,如果我将providerForms()添加到bootstrap调用.一旦我从引导程序调用中注释掉providerForms(),验证程序就不再起作用了.我假设组件中的providerForms定义已足够.任何解释? 解决方法
Angular2 DI总是向上查找请求的依赖项的提供者.如果由引导程序实例化的服务需要一个依赖项,而不是一个注入的服务,它将在树中进一步提供.
在根组件的bootstrap(…)和@Component(…)处提供不等效,但这种区别与根组件或其子项或其他子项中的所有内容无关. Angular2样式指南还建议优先选择root组件而不是bootstrap(),因为bootstrap应该保留给系统内容. 表单和路由器需要在创建第一个组件之前进行实例化(例如,在V3路由器的早期版本中存在一个错误,其中根组件需要注入路由器或包含routerLink,否则路由器将无法启动) . 因此,在根组件创建之前需要实例化某些事情时,会出现bootstrap()和根组件之间的差异变得相关的情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |