HERE 地图 - Infobubble 关闭事件/挂钩
HERE Maps - Infobubble close event / hook
我有一个 Angular 8 应用程序,其中包含侧边栏项目和带有标记的地图。
问题是当用户单击标记并打开 infobubble 时,我需要在侧边栏中打开该项目。这部分很容易做到,因为我可以在标记上为 'tap' 添加 eventListener,然后执行所需的逻辑。
marker.addEventListener('tap', (evt) => {
this.onTapBubble(evt, 'marker');
});
问题是当我需要在 infobubble 关闭事件中清除所选项目时,因为我找不到任何在 infobubble 关闭其按钮时会激活的挂钩。
有谁知道这是否可能以及如何实现?
我找到了关于它的类似文章,但它已有 5 年历史了,我不确定它现在是否有效,因为我无法使其正常工作:
您找到的文章适用于已弃用的 HERE javascript API (2.5.x) 版本。
对于当前的 APi 版本 (3.x),这很容易做到。其实有两种方法可以做到:
1.收听 InfoBubble 的 statechange
事件:
bubble = new H.ui.InfoBubble(map.getCenter(), {
content: 'Test'
});
bubble.addEventListener('statechange', function(evt) {
if (evt.target.getState() === H.ui.InfoBubble.State.CLOSED) {
console.log('Bubble closed')
}
})
2。在 InfoBubble 的选项中添加 onStateChange
回调:
bubble = new H.ui.InfoBubble(map.getCenter(), {
content: 'Test',
onStateChange: function(evt) {
if (evt.target.getState() === H.ui.InfoBubble.State.CLOSED) {
console.log('Bubble closed');
}
}
});
有关详细信息,请参阅 InfoBubble#Options and InfoBubble#getState。
我有一个 Angular 8 应用程序,其中包含侧边栏项目和带有标记的地图。 问题是当用户单击标记并打开 infobubble 时,我需要在侧边栏中打开该项目。这部分很容易做到,因为我可以在标记上为 'tap' 添加 eventListener,然后执行所需的逻辑。
marker.addEventListener('tap', (evt) => {
this.onTapBubble(evt, 'marker');
});
问题是当我需要在 infobubble 关闭事件中清除所选项目时,因为我找不到任何在 infobubble 关闭其按钮时会激活的挂钩。 有谁知道这是否可能以及如何实现?
我找到了关于它的类似文章,但它已有 5 年历史了,我不确定它现在是否有效,因为我无法使其正常工作:
您找到的文章适用于已弃用的 HERE javascript API (2.5.x) 版本。
对于当前的 APi 版本 (3.x),这很容易做到。其实有两种方法可以做到:
1.收听 InfoBubble 的 statechange
事件:
bubble = new H.ui.InfoBubble(map.getCenter(), {
content: 'Test'
});
bubble.addEventListener('statechange', function(evt) {
if (evt.target.getState() === H.ui.InfoBubble.State.CLOSED) {
console.log('Bubble closed')
}
})
2。在 InfoBubble 的选项中添加 onStateChange
回调:
bubble = new H.ui.InfoBubble(map.getCenter(), {
content: 'Test',
onStateChange: function(evt) {
if (evt.target.getState() === H.ui.InfoBubble.State.CLOSED) {
console.log('Bubble closed');
}
}
});
有关详细信息,请参阅 InfoBubble#Options and InfoBubble#getState。