angular - 在角度 cdk 覆盖上获取活动位置?
问题描述
有没有办法让附加组件覆盖活动位置?例如,我说要在上方打开一个工具提示,但这无法完成,并且叠加层将在下方打开它。我想从工具提示中添加一个指向我的元素的箭头,如果覆盖在元素上方/下方,我现在需要正确定位箭头
解决方案
ConnectedPositionStrategy (deprecated) 有onPositionChange属性,而 FlexibleConnectedPositionStrategy有positionChanges属性,我们不能在覆盖创建之前订阅这个 observables,所以,解决方案是在覆盖创建之后订阅:
const positionStrategy = this.overlay
.position()
.flexibleConnectedTo(this.selectHeader)
.withPositions([
{
originX: 'start',
originY: 'bottom',
overlayX: 'start',
overlayY: 'top',
},
{
originX: 'start',
originY: 'top',
overlayX: 'start',
overlayY: 'bottom',
},
]);
this.panelOverlay = this.overlay.create({positionStrategy});
positionStrategy.positionChanges.subscribe(pos => console.log(pos));
推荐阅读
- javascript - Moment.js - 自 unix 纪元以来的 UTC 日期到毫秒
- html - CSS中的负边距仅在容器元素设置了边框或填充时才适用于元素
- apache-flink - 在我的情况下,翻滚窗口组没有输出
- java - -M 选项的 Weka RandomForest 设置器
- python - Python Selenium如何查找具有变化文本的元素
- c# - 连接到 SOAP 服务 (.NET 4.7) 时验证消息错误的安全性时出错
- sql - 可序列化事务隔离级别是否保证非数据库代码也被序列化?
- python - isinstance 如何在 python 中为子类工作?
- php - Laravel 每天按奇数小时对数据进行分组
- python-3.x - 我是否需要使用 base64 通过 UDP 发送视频?