angular - 如何在 mat-select 中使用“overlayDir”指令?
问题描述
我想根据其覆盖位置设置 mat-select-panel 的样式,因此 mat-select 提供了一个overlayDir: CdkConnectedOverlay
属性。
并CdkConnectedOverlay
提供财产@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 的文档,overlayDir
它不是指令,而是mat-select
组件内部的属性。所以你应该mat-select
使用 ViewChild 装饰器获取组件,然后获取 overlayDir 属性,最后订阅backdropClick
事件发射器。请参阅这个stackblitz 示例。
推荐阅读
- python - 为什么 Pandas 抱怨 'n' 是 split 函数的无效关键字参数?
- geometry - what's the relationship between jaggedness and image resolution
- python - Flat file data cleanup with thousands or millions of records
- python - Pandas 数据框 groupby 使用独特的组合
- r - 在坐标翻转的“geom_bar()”图表上添加百分比变化
- r - ggplot: scale date monthly from Jan:Dec not Jan:Jan or Feb:Jan
- php - IDP Initiated SSO with Simple Saml
- javascript - Does setting an array element of type: object to null set the object value to null or just the array index?
- reactjs - React Bootstrap手风琴默认ActiveKey不起作用
- php - WordPress 自定义 php 文件在 wp-admin 文件夹中停止工作