在我的应用程序中,我使用模板驱动验证,但现在我必须切换到模型驱动的方法,但我不想删除双向数据绑定 . 所以我的HTML控件就像那样
form [formGroup]="myForm">
input type="checkbox" [(ngModel)]="selected.HasFull" formControlName="HasFull" /
但它开始抛出这个错误
ngModel不能用于使用父formGroup指令注册表单控件 . 尝试使用
而是formGroup的合作伙伴指令“formControlName” . 例:
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] =“{standalone:true}”添加到我的html控件中,但它给了我错误[ngModelOptions]不是输入的已知属性 .
当我用ng-model-options替换[ngModelOptions]时,更新输入的已知属性的问题消失但我仍然得到错误“ngModel不能用于向父formGroup指令注册表单控件 . ”我在表单上有两个字段,不需要验证,因此它们没有formControlName属性 . 作为一个解决方法,我将这两个字段作为我的fromgroup的一部分,并在它们上添加了formControlName属性,它现在工作正常 . 虽然我不需要验证这两个字段,但至少我没有收到错误 .