谷歌地图在sap.m.dialog sapui5

时间:2014-11-14 08:25:12

标签: dialog popup maps sapui5

我在我的视图中调用一个弹出窗口(显示带有一些细节的地图),其中包含以下代码,名为EditDialog.fragment.xml

<core:FragmentDefinition
  xmlns="sap.m"
 xmlns:core="sap.ui.core"
 xmlns:app="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1">

 <Dialog
title="Edit Client Location"
class="sapUiPopupWithPadding" >

<VBox fitContainer="true" justifyContent="Center" alignItems="Center">  
    <HBox id="map_canvas" fitContainer="true" justifyContent="Center" alignItems="Center" />  
</VBox>     

   

在我的控制器中,我有以下代码

    if (!this.Edit) {
        this.Edit = sap.ui.xmlfragment("motherclocker." + Edit
                + "Dialog", this // associate controller with the
        // fragment
        );
        this.getView().addDependent(this.Edit);
    }

    this.geocoder = new google.maps.Geocoder();
    var mapOptions = {
        center : new google.maps.LatLng(-34.397,
                150.644),
        zoom : 15,
        mapTypeId : google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(this.Edit.getView().byId(
            "map_canvas").getDomRef(), mapOptions);     

    this.Edit.open();

现在的问题是我收到消息未捕获的TypeError:无法读取未定义的属性'getDomRef'。通常对于谷歌地图,你只需使用this.getView(),它就可以正常使用,因为我在普通视图中使用它。然后我尝试了

    map = new google.maps.Map(
            this.Edit.getId("map_canvas"), mapOptions)

这会创建地图对象但是在调用对话框时;它没有显示。

任何人都知道解决方案吗?否则我将不得不调用一个新视图。

1 个答案:

答案 0 :(得分:1)

您可以使用sap.ui.getCore.byId方法访问对话框,例如:

sap.ui.getCore().byId("map_canvas")

对话框不是通常的视图的一部分,但它们被添加到#34;顶部&#34;。这就是为什么你不能通过视图引用它们。

此致 基莫