Sencha xtype方法

时间:2011-04-04 08:55:36

标签: sencha-touch extjs

我对xtypes有疑问。当我这样做时:

// map

var map = new Ext.map({
    fullscreen: true,
    getLocation: true,
    mapOptions: {
        zoom: 12
    }
});

map.map.setCenter(new google.maps.LatLng(record.attributes.record.data.latitude, record.attributes.record.data.longitude));

一切都很好,地图出现了。

现在,当我使用xtypes时,'map'变量将无法识别'setCenter'属性。 码:     var map =     {         全屏:真的,         xtype:'map',         标题:'地图',         getLocation:true,         useCurrentLocation:true,         的MapOptions:         {             zoom:12         }     };

map.map.setCenter(new google.maps.LatLng(record.attributes.record.data.latitude, record.attributes.record.data.longitude));

使用此代码,我在控制台中得到了这个:

  

未捕获的TypeError:无法调用方法   'setCenter'未定义

我希望有人可以帮助我。提前谢谢!

1 个答案:

答案 0 :(得分:3)

当您调用map.map.setCenter()时,您的地图对象已经被实例化。通过使用xtype定义地图,可以使用延迟实例化。

您可以尝试以下方式:

{
    xtype: 'map',
    fullscreen: true,
    getLocation: true,
    mapOptions: {
        zoom: 12
    },
    listeners: {
        maprender: function(component, map) {
            map.setCenter( ... )
        }
    }
}