angular 2:TypeError:this.form.updateValueAndValidity不是函数

时间:2016-07-05 08:50:03

标签: angular angular2-forms

此时没有源代码,请随意关注这个问题,我对于角度2开发中的这种痛苦(但必要的)连续弃用模式感到有点厌倦。

所以我升级到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”的方法

1 个答案:

答案 0 :(得分:10)

我不认为你可以同时使用模板驱动的方法和模型驱动的方法。

所以我会使用以下内容:

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

或:

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

其中userForm在您的组件类中使用FormBuilderFormControl定义。我认为这种方法是你需要的......