2012-06-08 129 views
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) { 

//一些功能需要在這裏載入我的商店 } }); }, });

回答

0

兩種方法可以做到這一點...

list.getStore(); 

應返回與列表相關的商店多數民衆贊成。

但是,在onMyListItemTap函數返回「記錄」作爲其參數的一部分,所以你可能只是做:

var lat = record.get('lat'), 
    long = record.get('long'); 
+0

感謝布萊斯做工精細.. :) –

+0

好買賣!很高興我能幫上忙 –