角度材料触发器以编程方式触摸状态

Tar*_*yen 2 angular-material2 angular

我正在使用 Angular 4 Reactive Forms@angular/material版本2.0.0-beta.10。我需要以编程方式使md-error消息出现。

在必填字段上,当用户在没有输入任何文本的情况下留下输入时,我会显示md-error“此字段是必填字段”。见代码:

<md-form-field>
    <input mdInput type="text"
           formControlName="PartNumber"
           placeholder="Part Number"
           maxlength="250"
           required />
    <md-error *ngIf="formGroup.controls['PartNumber'].hasError('required')">
        Part Number is <strong>required</strong>
    </md-error>
</md-form-field>
Run Code Online (Sandbox Code Playgroud)

我都试过:

this.formGroup.markAsTouched();
this.formGroup.markAsDirty();
Run Code Online (Sandbox Code Playgroud)

md-error下面的文字<input>时,我叫不出现markAsTouched()markAsDirty()

如何以编程方式触发触摸状态以显示错误消息?

Tar*_*yen 5

解决方案是遍历每个控件并将每个控件标记为已触摸:

Object.keys(this.formGroup.controls).forEach(key => {
    const ctrl = this.formGroup.get(key);
    ctrl.markAsTouched({ onlySelf: true });
});
Run Code Online (Sandbox Code Playgroud)