0

リスト内のアイテムのいずれかがテープに記録されたら、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が静的であるため、リスト内のすべてのアイテムに対して1つの特定の場所のみを検索します。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) {

//ストアをロードするには、いくつかの機能がここにある必要があります}}); }、});

4

1 に答える 1

0

あなたがそれを行うことができる2つの方法...

list.getStore();

リストに関連付けられたストアを返す必要があります。

ただし、 onMyListItemTap 関数は引数の一部として「レコード」を返すため、次のようにするだけです。

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