在谷歌地图infowindow angular2中显示自定义标签

时间:2017-04-17 09:18:49

标签: google-maps angular

map.component.ts代码:

......
infoWindow = new google.maps.InfoWindow(
{
    content: `<custom-tag></custom-tag>`    //***not displaying anything***
});
infoWindow.open(map, marker);
......

map.component.html代码:

<custom-tag></custom-tag>      <!--***displays hi***-->
<div class="google-maps"></div>

custom-tag.component.html代码:

<h2>hi</h2>

module.ts,routing.ts文件肯定没有错误。 信息窗口只是打开而不显示任何内容, 请帮我弄清楚为什么infowindow没有显示任何东西。

1 个答案:

答案 0 :(得分:3)

您必须通过ComponentFactoryResolver

动态创建组件
const compFactory = this.resolver.resolveComponentFactory(CustomTag);
this.compRef = compFactory.create(this.injector);

this.appRef.attachView(this.compRef.hostView);

let div = document.createElement('div');
div.appendChild(this.compRef.location.nativeElement);

this.infoWindow.setContent(div);
this.infoWindow.open(this.map, marker);

这是 Plunker Example

不要忘记将CustomTag组件添加到entryComponents