使用按钮关闭下拉菜单-角度材质

时间:2019-11-18 07:39:41

标签: javascript angular typescript angular-material

我正在使用角材料设计中的selectTo下拉列表。

这是我的代码:

<mat-form-field id="inputClick" appearance="outline" (click)="Valid()">
<mat-label>{{'GENERAL.TITLE' | translate}} *</mat-label>
<mat-select  [formControl]="toppings" multiple>
    <div class="drpInput">
        <mat-form-field class="mat-form-field-fluid" appearance="outline">
            <mat-label>{{'GENERAL.TITLE' | translate}} *</mat-label>
            <input autocomplete="off" matInput [placeholder]="'GENERAL.TITLE' | translate"
                (keyup)="onTextChange($event.target.value)">
        </mat-form-field>
    </div>
    <div class="oprionSelect">
            <mat-option  (click)="selectedUser(item.id)" *ngFor="let item of users" [value]="item.id">
                    <label>{{ item.displayName | translate }} </label><span class="mar">({{item.userName}})</span>
                </mat-option>
    </div>
    <mat-progress-bar *ngIf="loading" mode="indeterminate"></mat-progress-bar>
    <div class="row justofy-content-center text-center m-auto col-md-12 col-sm-12 col-lg-12 col-xl-12 col-lg12">
        <div class="col-md-4 col-sm-4 col-lg-4 col-xl-4 col-lg-4 right">
            <button mat-button color="primary" (click)="next()" *ngIf="nextBtn">بعدی</button>
        </div>
        <div class="col-md-4 col-sm-4 col-lg-4 col-xl-4 col-lg-4" *ngIf="count!=0">
            <button mat-button (click)="close()" color="warn">انتخاب</button>

        </div>
        <div class="col-md-4 col-sm-4 col-lg-4 col-xl-4 col-lg-4 left">
            <button mat-button color="accent" (click)="prev()" *ngIf="prevBtn">قبلی</button>
        </div>
    </div>
</mat-select>

点击“完成”按钮后,我希望下拉菜单关闭。如何实现?

1 个答案:

答案 0 :(得分:1)

MatSelect同时具有openclose两种方法供您使用。您可以采用几种方法。

<mat-select #matSelect [formControl]="toppings" multiple>
   ....
   <button (click)="finish(matSelect)">Close</button>
</mat-select>

或者,如果您不想直接将matSelect传递给finish()方法,则可以将其引用到ViewChild

@ViewChild('matSelect') matSelect;

finish() {
   this.matSelect.close();
}

您也可以直接从HTML关闭它:

<mat-select #matSelect [formControl]="toppings" multiple>
   ....
   <button (click)="matSelect.close()">Close</button>
</mat-select>

Stackblitz Demo

有关更多详细信息,请查看API文档-Select | Angular Material