Extjs 无法读取属性';gmap&x27;空的
我正在学习如何使用Ext.js框架,我使用GoogleAPI构建了一个地图,我正在使用GMapPanel小部件 在初始化应用程序时,我遇到了一些识别小部件的问题。我想在控制器上获取地图,但我一直收到以下错误: 未捕获的TypeError:无法读取null的属性“gmap” 在constructor.init(MapController.js?_dc=20151109082919:46) 在新构造函数处(ext all rtl debug.js?_dc=20151109082919:63176) 在构造函数处[作为自身](ext all rtl debug.js?_dc=20151109082919:12296) 在Object.widget(ext all rtl debug.js?_dc=20151109082919:14662) 在constructor.create(ext all rtl debug.js?_dc=20151109082919:26228) 在constructor.lookupComponent(ext all rtl debug.js?_dc=20151109082919:123938) 在constructor.prepareItems(ext all rtl debug.js?_dc=20151109082919:124418) 在constructor.add(ext all rtl debug.js?_dc=20151109082919:123436) 在constructor.initItems(ext all rtl debug.js?_dc=20151109082919:123861) 在constructor.initComponent(ext all rtl debug.js?\u dc=20151109082919:123821 我正在控制器上使用以下代码:Extjs 无法读取属性';gmap&x27;空的,extjs,Extjs,我正在学习如何使用Ext.js框架,我使用GoogleAPI构建了一个地图,我正在使用GMapPanel小部件 在初始化应用程序时,我遇到了一些识别小部件的问题。我想在控制器上获取地图,但我一直收到以下错误: 未捕获的TypeError:无法读取null的属性“gmap” 在constructor.init(MapController.js?_dc=20151109082919:46) 在新构造函数处(ext all rtl debug.js?_dc=20151109082919:63176)
init: function () {
var me = this;
var w = me.getView();
var flightPathCoordinates = [
{lat: (...), lng: (...)},
{lat: (...), lng: (...)},
{lat: (...), lng: (...)},
{lat: (...), lng: (...)}
];
var flightPath = new google.maps.Polyline({
path: flightPathCoordinates,
strokeColor: '#42ffcf',
strokeOpacity: 0.6,
strokeWeight: 5
});
flightPath.setMap(w.down('gmappanel').gmap);
我不得不做一些和我现在尝试做的类似的事情,它成功了,但是当有人点击一个特定的按钮时,就会调用这个函数
startViewer: function (btn) {
...
var map = btn.up('map');
...
flightPath.setMap(btn.up('map').gmap);
}
现在,我想做和我在startViewer()函数上做的一样的事情,但是当有人启动应用程序时,我会自动执行,我该怎么做呢
谢谢。通常,您会使用
boxready
()事件来执行类似操作。当组件完成布局时,该事件会触发一次且仅会触发一次。因此,通常情况下,您会侦听该事件,并且在该事件完成后,您可以执行您想要的任何代码。因此,在您的窗口配置中,您可以执行以下操作:
listeners: {
boxready: function(w){
var map = w.down('gmappanel').gmap;
//etc
}
}
但是,在这种情况下,这将不起作用,因为即使您的窗口可能已经完成了布局,gmappanel可能仍在创建实际的google地图。因此,为了适应这种情况,您可以使用gmappanel提供的mapready
事件。因此,您可以对窗口配置执行类似操作:
items: [{
xtype: 'gmappanel',
listeners: {
mapready: function(gmappanel){
var map = gmappanel.gmap;
}
}
}]