我正在尝试在Angular Material标签中集成地图。确切地说,是所有选项卡中的地图。我正在使用Datamaps来渲染地图。
我用我所做的演示制作了一支笔,http://codepen.io/sgsvenkatesh/pen/yJbYOj
当我使用setTimeout
封装地图的初始化时,代码完全按预期工作。 (我在第128行的上述笔中评论过)
当应用setTimeout
时,代码完全正常,如下所示。
setTimeout(function () {
new Datamap({
element: elem[0].querySelector(".map"),
scope: 'usa',
projection: 'equirectangular',
height: 500,
fills: {
defaultFill: '#F5F5F5'
},
data: scope.dataset,
geographyConfig: {
highlightBorderColor: '#bada55',
popupTemplate: function (geography) {
return '<div class="hoverinfo">' + geography.properties.name + '</div>';
},
highlightBorderWidth: 2
}
}).labels({'customLabelText': scope.USData});
}, 1000);
在我看来,问题是因为甚至在Angular Material渲染完成之前渲染了Datamaps。 (可能,这就是为什么svg没有任何宽度/高度)
Angular Material在渲染完成后是否提供回调?如果没有,我们如何实现任何DOM操作,这应该在材质渲染之后发生。
如果需要更多信息,请发表评论。