0

我想知道如何使用 itemtap 来遍历列表。我现在有一个列表,其中显示了多个项目,当用户单击每个项目时,将出现一个显示项目标记的地图。但是,列表中的每个项目似乎都显示相同的内容。它只是显示列表中的最新项目(第一个在顶部)。我想知道我在 itemtap 功能上做错了什么。谢谢你!!

这是我的控制器,其中 itemtap 功能是:

Ext.define('demo.controller.News',{
extend:'Ext.app.Controller',

config:{
    refs:{
        NewsContainer:'newscontainer'

    },
    control:{
        'newscontainer new list':{
            itemtap:function(list, index, target, record){
                var detailsView = Ext.create('demo.view.Mapo');
                detailsView.setData(record.data);
                this.getNewsContainer().push(detailsView);

            }
        }

    }   
}

});

这是我的地图:

Ext.define('demo.view.Mapo', {
extend: 'Ext.Map',
xtype:'mapo',
config: {
    title:'Incident Location',
    iconCls:'maps',
    layout:'fit',
    draggable: true,
    useCurrentLocation: true,
    mapOptions: {
        zoom: 11,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
},
initialize: function(){
    var me = this;
    me.on('maprender', function(comp, map){
    var image = 'resources/images/current.png';
        new google.maps.Marker({
            position: new google.maps.LatLng(
                    this._geo.getLatitude(), 
                    this._geo.getLongitude()
            ),
            icon: image,
            map: map,
            title: "Current Location",
            animation: google.maps.Animation.DROP
        });


        //Circle Radius
        // var populationOptions = {
        // strokeColor: "#FF0000",
        // strokeOpacity: 0.8,
        // strokeWeight: 1,
        // fillColor: "#FF0000",
        // fillOpacity: 0.35,
        // map: map,
        // center: new google.maps.LatLng(this._geo.getLatitude(), 
                            // this._geo.getLongitude()),
        // radius: 2000
        // };
        // var t = new google.maps.Circle(populationOptions);


    for (i=0; i<Ext.getStore('news').getData().length; i++){

        var data = Ext.getStore('news').getData().items[i].data
    };
        new google.maps.Marker({
            position: new google.maps.LatLng(
                    data.Latitude, 
                    data.Longitude
            ),
            // icon: image,
            map: map,
            title: "Incident Location",
            animation: google.maps.Animation.BOUNCE
        });


    });
    me.callParent(arguments);
}

});

4

0 回答 0