0

如何将我的商店动态加载到我的控制器中,以便能够在列表中的任何项目被录制后加载纬度并登录地图。

listeners: {
            maprender: function(component, map, geo, eOpts) {
                var position = new google.maps.LatLng(5.978132,116.072617);
                var marker = new google.maps.Marker({
                    position: position,
                    map: map
                        });

                var infowindow = new google.maps.InfoWindow({
                    content: 'Working Fine'
                        });

            google.maps.event.addListener(marker, 'click', function() {
                    infowindow.open(map, marker);
                        });

            setTimeout(function() {
                    map.panTo(position);
                }, 1000);

                },
           }, 

上面的代码有效,但它只为列表中的所有项目定位一个特定位置,原因是 lat 和 log 是静态的。我想让它加载纬度并从我的商店动态记录。

我的店铺:

Ext.define('List.store.Presidents', {
extend : 'Ext.data.Store',

config : {
model : 'List.model.President',
sorters : 'lastName',
storeId: 'contactmap',
grouper : function(record) {
    return record.get('lastName')[0];
},

data : [{
    firstName : "Ikhlas HQ",
    lastName : "Tower 11A, Avenue 5, Bangsar South, No.8 Jalan Kerinchi 59200 Kuala Lumpur",
    lat : 3.110649,
    lng : 101.664991,
    id: '200',
},
{
    firstName : "PEJABAT WILAYAH SELANGOR",
    lastName : "No. 97, 97-1 & 97-2, Jalan Mahogani 5/KS7, Ambang Botanic, 41200 Klang, Selangor",
    lat : 3.003384,
    log : 101.45256,
    id: '001',
},]}
});

我的控制器:

Ext.define('List.controller.Main', {
extend: 'Ext.app.Controller',
config: {
refs: {
    main: 'mainpanel',
  },
control: {
    myList: {
        itemtap: 'onMyListItemTap'
    },
    'presidentlist': {
            disclose: 'showDetail'
        },
 }
},
showDetail: function(list, record) {
            this.getMain().push({
                xtype: 'presidentdetail',
                title: record.fullName(),

onMyListItemTap: function(list, index, target, record, e, eOpts) {

// 一些功能需要在这里加载我的商店 } }); }, });

4

1 回答 1

0

有两种方法可以做到...

list.getStore();

应该返回与列表关联的商店。

但是,onMyListItemTap 函数将“记录”作为其参数的一部分返回,因此您可以这样做:

var lat = record.get('lat'),
    long = record.get('long');
于 2012-06-08T16:03:14.937 回答