离散2 beta 11升级表单中的ngModel使用中断

时间:2016-09-08 12:36:19

标签: angular ionic2

我将我的离子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错误?

1 个答案:

答案 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],})