我想使用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。
答案 0 :(得分:1)
听起来你正试图在实际创建之前访问该元素。我尝试将一个监听器添加到Afterrender事件到Window组件,然后调用一个处理函数然后访问该元素。
所以在面板配置中添加这种类型的东西:
listeners: {
afterrender: {
fn: setupWindow,
scope: this
}
}
然后是一个类似于此的函数:
function setupWindow(obj) {
var windowBodyHtmlElement;
windowBodyHtmlElement = obj.body.dom;
// ...do your stuff.
}
希望有所帮助。