将项目从商店动态加载到控制器

Dynamically Load items from Store to Controller

本文关键字:加载 控制器 动态 项目      更新时间:2023-09-26

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

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);
                },
           }, 

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

我的商店:

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) {

需要一些功能才能加载我的商店 } }); }, });

有两种方法可以做到这一点...

list.getStore();

应返回与列表关联的存储。

但是,onMyListItemTap 函数返回"记录"作为其参数的一部分,因此您可以执行以下操作:

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