首页 > 解决方案 > Angular Form Valid Observable subcribe 找不到 onvalid 事件

问题描述

我引入了一个具有输入控制的共享表单。我需要检查表格是否有效。如果为 false,代码将禁用保存按钮。

在我的角度 html 代码中,我有以下内容

<button  [disabled]="disablesavebutton" mat-raised-button 
(click)="save()">Save</button>

在我的 ts 代码中,我有以下内容

import 'rxjs/add/operator/filter'


export class MyDialogComponent {
    disableSaveButton: boolean = false;
    baseControl: SharedComponent;

  ngOnInit() {
        this.baseControl.Form.statusChanges
        .filter(s => this.disableSaveButton = 
        this.baseControl.Form.valid)
        .subscribe(val => onvalid)
    }
}

我的目标是基本表单无效,通过订阅触发 disableSavebutton 布尔值,从而禁用按钮。我收到一个错误,“找不到名称 onvalid。你的意思是 oninvalid”oninvalid 需要一个 ev: Event 参数,但我对此不熟悉。

任何帮助表示赞赏。谢谢

在我的角度 html 代码中,我有以下内容

<button  [disabled]="disablesavebutton" mat-raised-button (click)="save()">Save</button>

在我的 ts 代码中,我有以下内容

import 'rxjs/add/operator/filter'


export class MyDialogComponent {
    disableSaveButton: boolean = false;
    baseControl: SharedComponent;

  ngOnInit() {

        this.baseControl.Form.statusChanges
        .filter(s => this.disableSaveButton = this.baseControl.Form.valid)
        .subscribe(val => onvalid)
    }
}

标签: angular

解决方案


statusChanges Observable 将表单的当前状态作为字符串发出。要禁用您的按钮,您只需检查状态是否为无效:

this.baseControl.Form.statusChanges.subscribe(status => {
    this.disableSaveButton = status === "INVALID";
});

https://angular.io/api/forms/AbstractControl#statusChanges


推荐阅读