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

标签 angular angular2-forms angular-validation

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

“类型错误: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 语句的输出是一个 FormGroupDirective,它只是没有名为 updateValueAndValidity 的方法。

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

最佳答案

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

所以我会使用以下任一方法:

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

或:

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

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

关于angular 2 : TypeError: this. form.updateValueAndValidity 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38199046/

相关文章:

html - Angular 7 动画 - 过渡不起作用

如果路由到相同的参数, Angular 不会重新加载

javascript - 如何在类本地方法之一中从 Javascript 回调访问 typescript 类成员

html - 如何让事件路线在我的导航栏上突出显示?

javascript - 使用 AngularJS 验证单选按钮集

angular - ngIf 导致错误 : Conditional Expression requires all 3 expressions at the end of expression

javascript - 将 ngFor 与 ngModel 动态数据错误行为一起使用

Angular2 - 参数 $event 隐式具有 'any' 类型

typescript - 如何根据 Angular 2 中的自定义验证规则显示错误消息?

angularjs - 如何显示数字类型输入字段的最小值和最大值的错误消息?