ExtJS Panel带有嵌入式谷歌地图

时间:2011-03-09 13:45:03

标签: javascript google-maps extjs

我想使用google的javascript api创建一个包含谷歌地图的面板。

我通过将窗口的DOM对象传递给google-map构造函数,成功创建了一个带有谷歌地图的ExtJS窗口。但是,当我尝试使用Panel时(只需替换Window所在的Panel)。它告诉我'身体'是未定义的。我做错了什么?

谢谢!

  
    

var window = new Ext.Window({     ...     });

         

window.show(); //破解建造dom。

         

var d = window.body.dom; //< - 此行不适用于Panel。为什么???

         

var map = new GMap2(d); // Google Map从ExtJS对象中获取dom。

  

1 个答案:

答案 0 :(得分:1)

听起来你正试图在实际创建之前访问该元素。我尝试将一个监听器添加到Afterrender事件到Window组件,然后调用一个处理函数然后访问该元素。

所以在面板配置中添加这种类型的东西:

listeners: {
    afterrender: {
        fn: setupWindow,
        scope: this
     }
}

然后是一个类似于此的函数:

function setupWindow(obj) {
    var windowBodyHtmlElement;
    windowBodyHtmlElement = obj.body.dom;

    // ...do your stuff.
}

希望有所帮助。