Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在父窗体中识别子组件中的控件?(angular2 rc3)_Angular_Angular2 Forms - Fatal编程技术网

如何在父窗体中识别子组件中的控件?(angular2 rc3)

如何在父窗体中识别子组件中的控件?(angular2 rc3),angular,angular2-forms,Angular,Angular2 Forms,我刚刚将正在开发的应用程序升级到Angular 2(rc3)、Router&Forms(0.1.1)的最新版本。我现在正在尝试将表单转换为最新的库和最佳实践。我正在尝试完成这项工作 如果我这样做的话,我可以让表单工作: <form #form="ngForm"> <input type="text" name="firstName" [(ngModel)]="model.firstName" required /> </form> 但是我把我的表单分

我刚刚将正在开发的应用程序升级到Angular 2(rc3)、Router&Forms(0.1.1)的最新版本。我现在正在尝试将表单转换为最新的库和最佳实践。我正在尝试完成这项工作

如果我这样做的话,我可以让表单工作:

<form #form="ngForm">
  <input type="text" name="firstName" [(ngModel)]="model.firstName" required />
</form>

但是我把我的表单分为多个组件-页面上有4个部分,因此我有一个组件代表每个部分,每个部分有5-10个不同类型的输入字段

所以我的代码基本上是:

<form #form="ngForm">
  <section-1 [(model)]="model"></section-1>
  <section-2 [(model)]="model"></section-2>

  <button type="submit">Submit</button>
</form>

提交
但是表单不会将子组件中的控件添加到表单的控件列表中。最好的办法是什么?我可以在每个子组件中放置一个表单,跟踪其自身的有效状态,并使用父组件“手动”管理4种不同的有效状态,但似乎应该有更好的方法

谢谢


Dan

您可以在父级中使用一个模型变量来表示可能具有多个字段的子组件,然后子组件将在正确实现ControlValueAccessor接口后开始充当父级窗体中的窗体控件,该接口告诉Angular 2如何在模型和视图之间传播值。在

中寻找第三个例子嗨,丹,你算出来了吗?