Sencha touch Sencha xtype方法

Sencha touch Sencha xtype方法,sencha-touch,extjs,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.reco

我有一个关于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”属性。 代码: 变量映射= { 全屏:对, xtype:'map', 标题:"地图",, getLocation:true, useCurrentLocation:true, 地图选项: { 缩放:12 } };

使用此代码,我在控制台中获得以下信息:

未捕获的TypeError:无法调用方法 未定义的“设置中心”


我希望有人能帮助我。提前谢谢

当您调用
map.map.setCenter()
时,您的map对象已经被实例化。通过使用xtype定义映射,可以使用惰性实例化

您可以尝试以下方法:

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

谢谢你的回答!我正在玩xtypes,现在我有了一个面板description var description={xtype:'panel',tpl:{title}};描述.更新(记录.属性.记录.数据);这给了我一个方法“更新”未知的错误。。。我必须用同样的方法解决这个问题吗?是的,我想是的。在文档中,您可以查看可以在面板中插入的不同事件(例如,maprender是Map的事件)。
{
    xtype: 'map',
    fullscreen: true,
    getLocation: true,
    mapOptions: {
        zoom: 12
    },
    listeners: {
        maprender: function(component, map) {
            map.setCenter( ... )
        }
    }
}