После обновления до RC5 мы начали получать эту ошибку:
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>
Это похоже в RC5, эти два больше не могут использоваться вместе, но я не мог найти альтернативное решение.
Вот компонент, производящий исключение:
<select class="field form-control" [formGroup]="form" [(ngModel)]="cause.id" [name]="name">
<option *ngFor="let c of causes" [value]="c.text">{{c.text}}</option>
</select>
Я просто получил эту ошибку, потому что я не включил все свои средства управления формой в div
с formGroup
атрибут.
, Например, это бросит ошибку
<div [formGroup]='formGroup'>
</div>
<input formControlName='userName' />
, Это может быть довольно легко пропустить, если это - особенно подробная форма.
Если Вы хотите использовать [formGroup]
с formControlName
, необходимо заменить name
атрибут formControlNameformControlName
.
Пример:
Это не работает, потому что это использует [formGroup]
и name
атрибут.
<div [formGroup]="myGroup">
<input name="firstName" [(ngModel)]="firstName">
</div>
необходимо заменить эти name
атрибут formControlName
, и он будет хорошо работать как это следующее:
<div [formGroup]="myGroup">
<input formControlName="firstName" [(ngModel)]="firstName">
</div>