将垫子选择绑定到onOpen事件



我正试图将mat-select绑定到一个函数,该函数将调用java并获取必须显示为选项的数据。

但是(onOpen(事件不起作用,更准确地说,从未调用绑定到它的函数。

有人遇到过这样的问题吗?

这是我的代码:

<mat-form-field>
<mat-select placeholder="Select Year of the Report" (onOpen)="getData(0)">
<mat-option *ngFor="let year of this.years">
{{year}}
</mat-option>
</mat-select>
</mat-form-field>

以下是函数getData:

getData(ref: number) {
console.log('it Works !');
this.recommendationService.getRecommendationFilters(ref).subscribe((data: any[]) => {
this.years = data;
console.log(data.toString())
});
}

谢谢!

您的第一个问题是应该删除它。从下面的线。

<mat-option *ngFor="let year of this.years">

只写

<mat-option *ngFor="let year of years">

另一个问题是,您可以在select元素中使用(点击(事件,它只会调用一次。

看看我为你准备的演示。

只要您单击select元素打开它,它就会只调用函数一次。

<mat-form-field>
<mat-select placeholder="Select Year of the Report" (change)='getData($event)'>
<mat-option *ngFor="let year of years" value= 0>
{{year}}
</mat-option>
</mat-select>
</mat-form-field>

在您的ts文件中使用以下代码

getData(event: any) {
ref = event.target.value;
console.log('it Works !');
this.recommendationService.getRecommendationFilters(ref).subscribe((data: any[]) => {
this.years = data;
console.log(data.toString())
});

}

相关内容

  • 没有找到相关文章