首页 > 解决方案 > 无法读取未定义的属性“getDomRef”

问题描述

我正在尝试在单击按钮时在对话框中添加 GMap。当我将地图的容器放置在任何视图中时,它会正确呈现,但是当在对话框中打开它时,主题中提到的问题每次都会出现。

我在对话框中使用了以下控件。

<VBox id="mapDiv" fitContainer="true" justifyContent="Center" alignItems="Center" width="50%" height="10rem"></VBox>

下面是我在 onclick 函数中使用的代码

setTimeout(
                function () {
                    var map = new google.maps.Map(sap.ui.getCore().byId('mapDiv').getDomRef(), {
                        center: {
                            lat: -34.397,
                            lng: 150.644
                        },
                        zoom: 20
                    });
                    var infoWindow = new google.maps.InfoWindow;
                    if (navigator.geolocation) {
                        navigator.geolocation.getCurrentPosition(function (position) {
                            var pos = {
                                lat: position.coords.latitude,
                                lng: position.coords.longitude
                            };

                            infoWindow.setPosition(pos);
                            infoWindow.setContent('Location found.');
                            infoWindow.open(map);
                            map.setCenter(pos);

                        });
                    }
                }, 10000);

标签: javascriptgoogle-mapssapui5

解决方案


通过使用Fragment.byId("idValidationFrag", "mapDiv")* 而不是sap.ui.getCore().byId("mapDiv").


*Fragment模块所需"sap/ui/core/Fragment"


推荐阅读