sup*_*jos 2 angular2-forms angular
在 Angular 2 RC.5 中,我找不到上述错误的修复:
Unhandled Promise rejection: Template parse errors:
No provider for FormGroupDirective ("p>Custom begin </p>
<p>Host contains {{hostFormGroup.directives.length}} directives</p>
[ERROR ->]<nested></nested>
<p>Custom end </p>
</div>
"): CustomComponent@4:6 ; Zone: <root> ; Task: Promise.then ; Value:
Run Code Online (Sandbox Code Playgroud)
当嵌套在另一个自定义组件中的自定义组件依赖于 contains 时,就会发生这种情况@Host() hostFormGroup: FormGroupDirective。
这是一个展示场景的plunker 。AppComponent显示包含 CustomComponent 的反应式/模型驱动表单(暂时没有控件,但这并不重要) ,而CustomComponent又具有NestedComponent。有关错误详细信息,请参阅开发人员控制台。
第一级自定义组件可以依赖于托管FormGroupDirective或不依赖,这不会影响问题。如果它具有依赖性,则可以正确解决。无论第一级组件如何,第二级自定义组件都不会发生同样的情况。
如果直接在AppComponent中使用相同的NestedComponent,问题就会消失。
我缺少什么?TA
主要部分代码如下,供参考:
Unhandled Promise rejection: Template parse errors:
No provider for FormGroupDirective ("p>Custom begin </p>
<p>Host contains {{hostFormGroup.directives.length}} directives</p>
[ERROR ->]<nested></nested>
<p>Custom end </p>
</div>
"): CustomComponent@4:6 ; Zone: <root> ; Task: Promise.then ; Value:
Run Code Online (Sandbox Code Playgroud)
错误消息会为您指明正确的方向。您需要声明其FormGroupDirective是提供商。IE
@Component({
...
providers: [FormGroupDirective]
});
Run Code Online (Sandbox Code Playgroud)
否则,您需要在更高级别声明它,例如在您的模块中,以便您可以在模块范围内使用它。
| 归档时间: |
|
| 查看次数: |
18614 次 |
| 最近记录: |