我正在编写一组地图组件,我的一个组件需要在地图标记鼠标悬停时显示弹出窗口。这由mapMarkerPopup
内的mapMarkers
处理。
不幸的是,这不起作用。我认为这是因为我试图使用的翻译插槽不在直接父节点中。这是为什么?另外,如果这就是为什么我可以做些什么呢?
注1 由于地图的工作方式任何可见的[非地图] HTML必须放在ui-gmap-google-map
指令之外
注意2 mapClickHandler
与mapMarkerPopup
的工作类似,但是地图组件的直接子项并且有效。但是mapMarkerPopup
我遇到了问题。
以下是整体HTML的外观
<my-map>
<map-click-handler>...</map-click-handler>
<map-markers></map-markers>
</my-map>
以下是如何设置组件,仅显示相关部件。
myMap.html
<ui-gmap-google-map>
<ng-transclude></ng-transclude>
</ui-gmap-google-map>
<ng-transclude ng-transclude-slot="mapClickHandler"></ng-transclude>
<ng-transclude ng-transclude-slot="mapMarkerPopup"></ng-transclude>
myMap.component.ts
this.transclude = {
"mapClickHandler": "?mapClickHandler",
"mapMarkerPopup": "?mapMarkerPopup"
}
请注意,map-click-handler
直接放置在正确转录的<my-map>
组件内。所以我知道一个直接的孩子正确地换了。
mapMarkers.html
<ui-gmap-markers></ui-gmap-markers>
<map-marker-popup></map-marker-popup>