8

我升级到 rc.4 并尝试使用新的 forms-api。这就是我得到的:

“TypeError:this.form.updateValueAndValidity 不是函数”

异常源自 Angular 中的文件“form_group_directive.js”:

FormGroupDirective.prototype.ngOnChanges = function (changes) {
    this._checkFormPresent();
    if (collection_1.StringMapWrapper.contains(changes, 'form')) {
        var sync = shared_1.composeValidators(this._validators);
        this.form.validator = validators_1.Validators.compose([this.form.validator, sync]);
        var async = shared_1.composeAsyncValidators(this._asyncValidators);
        console.log('from within angular:---------------------------------------------------------------------------------------------------');
        console.log(this.form);
        this.form.asyncValidator = validators_1.Validators.composeAsync([this.form.asyncValidator, async]);
        this.form.updateValueAndValidity({ onlySelf: true, emitEvent: false });
    }

console.log-statement 的输出是一个FormGroupDirective没有名为 的方法updateValueAndValidity

上述错误消息对任何人都意味着什么?

4

1 回答 1

10

我认为您不能同时使用模板驱动方法和模型驱动方法。

所以我会使用以下任一:

<form  *ngIf="showForm" #userForm="ngForm"
   (ngSubmit)="userFormSubmit()">
</form>

或者:

<form  *ngIf="showForm" [formGroup]="userForm"
   (ngSubmit)="userFormSubmit()">
</form>

whereuserForm在你的组件类中用FormBuilderor 定义FormControl。我认为这种方法是你需要的......

于 2016-07-05T09:52:36.713 回答