我将我的离子2项目从beta 10升级到11并修复了破坏性的东西并遇到了我的表格的问题,我没有'能够解决
我的原始代码在beta 10中完美运行(尽管有弃用警告), 表单代码示例:
<form [ngFormModel]="merchantForm" (ngSubmit)="onSubmit(merchantForm.value)">
<ion-item>
<ion-label>First name</ion-label>
<ion-input [ngFormControl]="firstName" [(ngModel)]="merchantData.firstName" type="text"></ion-input>
</ion-item>
<ion-item>
<ion-label>Country</ion-label>
<ion-select [ngFormControl]="country" [(ngModel)]="merchantData.country" (ngModelChange)="updateTimeZone()">
<ion-option *ngFor="let key of countryList" [value]="key">{{key}}</ion-option>
</ion-select>
</ion-item>
<ion-item>
<ion-label>Time zone</ion-label>
<ion-select [ngFormControl]="timezone" [(ngModel)]="merchantData.timezone">
<ion-option *ngFor="let key of zoneList" [value]="key">{{key}}</ion-option>
</ion-select>
</ion-item>
</form>
我根据Angular 2 RC4建议更改了此代码: (ngFormModel - &gt; formGroup,ngFormControl - &gt; formControl,然后为所有ngModel输入字段添加名称)
这返回了一个错误:
ORIGINAL EXCEPTION: No value accessor for ''
删除所有[(ngModel)]标签后,它会显示表单。 这导致了一个不同的问题,因为我需要在提交表单之前使用来自其中一个输入的数据。
有没有办法在其中一个表单元素上使用ngModel,同时消除no accessor错误?
答案 0 :(得分:1)
经过进一步调查后发现,该故障并非源于[(ngModel)]的存在
来自导入模块[FORM_DIRECTIVES]的分支。该模块不再处理ngModel调用 - 这已被推迟到新模块[REACTIVE_FORM_DIRECTIVEs],该模块必须从'@ angular / forms'导入并在@Component中应用,如:
import { REACTIVE_FORM_DIRECTIVES } from '@angular/forms';
然后申请:
@Component({
templateUrl: 'build/pages/sign-up/sign-up.html',
directives: [REACTIVE_FORM_DIRECTIVES],})