我正在使用Angular Material自动完成,如下所示:
<mat-autocomplete #autocomplete="matAutocomplete" [displayWith]="displayFn" autoActiveFirstOption>
<mat-option *ngFor="let option of filteredOptions$ | async" [value]="option" (onSelectionChange)="onSelectionChanged(option)" >
{{displayFn(option)}}
</mat-option>
</mat-autocomplete>
这是处理程序:
onSelectionChanged(option) {
console.log('Selected ' + option.name);
}
由于某种原因onSelectionChanged()
,两次被调用。第二次有了旧的价值!我不明白为什么。这里发生了什么?
选择项目1,然后选择项目2,然后选择项目3:
> Selected item 1
> Selected item 2
> Selected item 1 // The unwanted call with the old value
> Selected item 3
> Selected item 2 // The unwanted call with the old value
材料具有optionSelected事件,您可以使用它
<mat-autocomplete #autocomplete="matAutocomplete" (optionSelected)="onSelectionChanged($event)" [displayWith]="displayFn" autoActiveFirstOption>
<mat-option *ngFor="let option of filteredOptions$ | async" [value]="option" >
{{displayFn(option)}}
</mat-option>
</mat-autocomplete>
并以此方式获得价值
onSelectionChanged(event) {
console.log(event.option.value);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句