我正试图将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())
});
}