简体   繁体   English

角材料中的md-select错误消息触发器

[英]md-select error message trigger in angular material

I have a md-select and a corresponding submit button that I use to call a web-service and pass data from md-select (I am not using any forms here): 我有一个md-select和一个相应的Submit按钮,用于调用Web服务并从md-select传递数据(我在这里不使用任何形式):

<div class="col-8">
    <md-select placeholder="Select User" class="custom-select" id="user" name="user" [(ngModel)]="user" floatPlaceholder="never">
        <md-option *ngFor="let user of users| keys" [value]="user.key">{{user.value}}</md-option>
    </md-select>
</div>
<div class="col-2 mb-3">
    <button type="button" class="btn blue-btn" (click)="ws(user)">View Details</button>
</div>

Upon submit and before calling web-service, I want to check whether any option has been selected and display an error message (angular material style) in case none is. 提交后和致电Web服务之前,我想检查是否已选择任何选项并显示错误消息(角度材质样式),以防万一。 The Angular documentation mentions an errorStateMatcher for mdInput but none for md-select . Angular文档为mdInput提到了errorStateMatcher ,但对于md-select没有提及。

make use of ngModelChange 利用ngModelChange

<md-select placeholder="Select User" class="custom-select" id="user" name="user" [(ngModel)]="user" floatPlaceholder="never" (ngModelChange)="changeSelected($event)">
        <md-option *ngFor="let user of users| keys" [value]="user.key">{{user.value}}</md-option>
    </md-select>

Component 零件

changeSelected(event) {
  this.user = event.user;
}

The best way, IMO, is to use reactive forms : IMO最好的方法是使用反应形式:

myForm: FormGroup;
constructor(private fb: FormBuilder) {
    this.myForm = fb.group({
        user: ['', Validators.required]
    });
}

submitMethod() {
    if (this.myForm.valid) {/* ... */}
}

// HTML
<form novalidate (ngSubmit)="submitMethod" [formGroup]="myForm">
    <select formControlName="user" ...>
</form>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM