2011-08-04 10 views
1

マーカーで問題を解決した後、別の問題が発生しました。今回は、は、マップを使用してパネルを作成した後に、リスナーonまたはaddListenerのメソッドを使用)を追加できません。Sencha Touch:Mapにリスナーを追加できません。助けてください?

ご協力いただければ幸いです。ここでは、コードです:

Ext.setup({ 
... 
onReady: function() { 

    var TopBar, Tabs, MapHome, Viewport, Homecard, Nearbycard, updateNearby; 

    /* 
    *  HOME 
    */ 
    var markersHome = []; 
    MapHome = new Ext.Map({ 
     id: "maphome", 
     title: 'Map', 
     useCurrentLocation: true, 
     listeners: { 
      centerchange: function(comp, map){ 
       deleteOverlays(markersHome); //defined on another file 
       addMarker(markersHome,map.center); //defined on another file 
       showOverlays(markersHome,map); //defined on another file 
      } 
     }, 
     mapOptions : { 
      mapTypeControl : false, 
      navigationControl : false, 
      streetViewControl : false, 
      backgroundColor: 'transparent', 
      disableDoubleClickZoom: true, 
      zoom: 17, 
      draggable: false, 
      keyboardShortcuts: false, 
      scrollwheel: false, 
      mapTypeId: google.maps.MapTypeId.HYBRID 
     } 
    }); 


    Homecard = new Ext.Panel({ 
     title: "home", 
     id: "homecard", 
     iconCls: "home", 
     items: [MapHome] 
    }); 

    /* 
    *  NEARBY 
    */ 
    Nearby = new Ext.List({ 
     scroll: 'vertical', 
     height: '100%', 
     styleHtml: true, 
     store: new Ext.data.Store({ 
      model: 'Places', //defined on another file 
      sorters: 'title', 
      data: [] 
     }), 
     itemTpl:['<div class="nearby-item" id="{id}">', 
        '<img alt="{title}" src="{imageUrl}" />', 
        '<h2>{title}</h2>', 
        '<p>{excerpt}</p>', 
       '</div>'] 
    }); 

    Nearbycard = new Ext.Panel({ 
     fullscreen: true, 
     iconCls: "list", 
     title: "nearby", 
     id: "nearbycard", 
     items: [Nearby] 
    }); 

    updateNearby = function() { 
     console.log('updating!'); //debug purposes 
     } 
    MapHome.on('locationupdate',updateNearby); // <-- Here is the problem 



    /* 
    *  MAIN 
    */ 

    TopBar = new Ext.Toolbar({ 
     dock: 'top', 
     xtype: "toolbar", 
     title: "<img class='titleLogo' src='css/images/logo.png' />", 
     items: [ 

      { xtype: 'spacer' }, 
      { 
       iconCls: 'settings9', 
       iconMask: true, 
       text: 'options' 
      } 
     ] 
    }); 

    Tabs = new Ext.TabPanel({ 
     id: 'tabs', 
     //fullscreen:true, 
     dock: 'bottom', 
     flex: 1, 
     tabBar: { 
      dock: 'bottom', 
      layout: { 
       pack: 'center' 
      } 
     }, 
     items: [ Homecard, Nearbycard ] 
    }); 

    Viewport = new Ext.Panel({ 
     fullscreen:true, 
     layout:{type:'vbox',align: 'stretch'}, 
     ui:'dark', 
     items: [TopBar,Tabs], 
    }); 
} 
}); 

私はMapHome.onコードでの行に、このエラーを取得しておいてください。

Uncaught TypeError: Cannot read property 'element' of undefined

+0

を修正しました。変数を定義する際にエラーが発生しました。上記のコードが正しいようになりました。 – vascomotaborges

答えて

0

私はそれが

MapHome.map.on(……………………); 

それが動作するかどうかを確認すべきだと思います。あなたがここに知っていて、完璧なコードで貼り付けているのであれば、

関連する問題