我为 Google Map 创建了一个指令,我希望它覆盖父容器宽度的 100%(有效)以及父容器高度的 100%(不适用于 css height:100%;)。但是css不再是我的问题了。所以我创建了一个方法
getHeightOfMap(){
if(document.getElementById('mapContainer').offsetHeight<100){
var containerHeight = document.getElementById('map-canvas').parentNode.parentNode.parentNode.offsetHeight;
if(containerHeight<100){
containerHeight = 400;
}
return containerHeight+"px";
}
return document.getElementById('mapContainer').offsetHeight+"px";
}
这是我在 html 模板中使用它的方式
<div id="mapContainer" style="margin:4px 0 -5px 0;" ng-style="{ 'height' : googleMapsCtrl.getHeightOfMap() }">
<div id="map-canvas" style="display:block;height:100%;"></div>
</div>
这很好用,但我发现它用来“刷新”ng-style
什么会扼杀性能(这就是 AngularJS Batarang 所说的),并且在一段时间后应用程序崩溃。
为什么会这样?我解决高度问题的方法有什么问题?