将ngModel与Reactive表单一起使用

时间:2017-03-31 18:01:51

标签: angular reactive-forms

在我的应用程序中,我使用模板驱动验证,但现在我必须切换到模型驱动的方法,但我不想删除双向数据绑定。所以我的html控件就像那样

form [formGroup]="myForm">
    input type="checkbox" [(ngModel)]="selected.HasFull" formControlName="HasFull" /

但它开始抛出这个错误

  ngModel cannot be used to register form controls with a parent formGroup directive.  Try using
  formGroup's partner directive "formControlName" instead.  Example:
div [formGroup]="myGroup">
  input formControlName="firstName"
/div

In your class:

this.myGroup = new FormGroup({
   firstName: new FormControl()
});

  Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:

  Example:


div [formGroup]="myGroup">
   input formControlName="firstName">
   input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}"
</div

然后我添加了这个[ngModelOptions] =&#34; {standalone:true}&#34;到我的html控件,但它给了我错误[ngModelOptions]不是输入的已知属性。

  

更新   当我用ng-model-options替换[ngModelOptions]时,输入的已知属性的问题消失了,但我仍然得到错误&#34; ngModel不能用于使用父formGroup指令注册表单控件。&# 34;   我在表单上有两个字段,不需要验证,因此它们没有formControlName属性。作为一个解决方法,我将这两个字段作为我的fromgroup的一部分,并在它们上添加了formControlName属性,它现在工作正常。尽管我不需要对这两个字段进行验证,但至少我没有收到错误。

0 个答案:

没有答案