当子组件具有ngModelGroup时,没有ControlContainer的提供者

时间:2016-08-30 10:32:14

标签: angular angular2-forms

我似乎无法弄清楚这一点,它根本就没有用。

这是由Pascal Prekht编写的原始plunker,它是对模板驱动形式的解释:

here是我的fork,它是完全相同的东西,除了我试图将其中一个字段集作为单独的子组件加载。

以下是代码:

#1091 - Can't DROP 'päättä'; check that column/key exists

因此,在切割其中一个feildset并将其加载到单独的指令中之后,它将不再起作用了!,

有几个已关闭的问题,但其中没有问题正在发挥作用。

This This

3 个答案:

答案 0 :(得分:13)

我知道这是一个老问题。但是将来有人会发现它很有用。我遇到了同样的问题,看起来如果组件的<form>标签没有formGroup指令并且模块正在导入时出现错误 ReactiveFormModule。因此,要解决此问题,请确保所有<form>标记都有formGroup指令,如果其模块正在导入ReactiveFormModule

答案 1 :(得分:5)

如果您使用的是模板驱动的表单,并且该表单的一部分具有子组件,并且(最终)希望使用 ngModelGroup 子组件中,您需要向该视图提供 ControlContainer

快速解决方案:

    在子组件中
  • 导入ControlContainer, NgForm import { ControlContainer, NgForm } from '@angular/forms';
  • 将它们作为viewProviders添加到子组件@Component装饰器中:

```

@Component({
  selector: 'sub-question',
  templateUrl: '...',
  styleUrls: ['...'],
  viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]
})

答案 2 :(得分:0)

在app.modules.ts上快速导入

import { ReactiveFormsModule  } from '@angular/forms';

@NgModule({
imports: [
ReactiveFormsModule],})