如何将我的商店动态加载到我的控制器中,以便能够在录制列表中的任何项目后加载lat并登录地图。
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是静态的。我想让它从我的商店动态加载lat和日志。
我的商店:
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 :(得分:0)
你可以采取两种方式......
list.getStore();
应返回与列表关联的商店。
但是,onMyListItemTap函数返回“记录”作为其参数的一部分,所以你可以这样做:
var lat = record.get('lat'),
long = record.get('long');