我想根据其覆盖位置设置 mat-select-panel 的样式,因此 mat-select 提供了 overlayDir: CdkConnectedOverlay
属性。
和CdkConnectedOverlay
提供属性(property)@Output()
positionChange: EventEmitter<ConnectedOverlayPositionChange>
但我似乎无法解决。
这是文档的链接:https://material.angular.io/cdk/overlay/api#CdkConnectedOverlay
<mat-form-field>
<mat-label>Favorite food</mat-label>
<mat-select disableOptionCentering panelClass="select-panel-class" overlayDir (attach)="test($event)" (backdropClick)="test($event)" (positionChange)="test($event)">
<mat-option value="food.value1">
value1
</mat-option>
<mat-option value="food.value2">
value2
</mat-option>
<mat-option value="food.value3">
value3
</mat-option>
</mat-select>
</mat-form-field>
----------------ts-----------------
test(evt){
console.log(evt)
}
它应该控制台记录“backdropClick”、“attach”和“positionChange”事件,但它不显示任何内容,也不显示任何错误。 我使用正确吗?如果没有请解释如何使用它。
最佳答案
根据Angular Material's documentation , overlayDir
不是指令,而是 mat-select
组件内的属性。因此,您应该使用 ViewChild 装饰器获取mat-select
组件,然后获取overlayDir属性,最后订阅backdropClick
事件发射器。请看这个stackblitz example .
关于angular - 如何在 mat-select 中使用 'overlayDir' 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57688963/