Ext.tab.Panel没有显示内容

时间:2013-04-12 13:38:31

标签: extjs sencha-touch sencha-touch-2 sencha-touch-2.1

我有一个带有form.Panel形式的应用程序,当用户按下搜索时,它会在tab.Panel中显示结果。这一切都正常,标签第一次正常工作。我有一个按钮,允许用户返回到form.Panel并输入不同的信息。用户再次按下搜索,一切都显示正常,但是如果您从初始选项卡更改然后尝试返回到它,则不会显示任何内容。我在控制台中没有错误只是一个空面板,最后是标签栏。有人知道这可能发生的任何原因吗?

列表项目点按控制器:

     Ext.define('FirstApp.controller.Details', {
     extend: 'Ext.app.Controller',

    config: {
    refs: {
        placesNavView:'placesContainer',


    },
    control: {
        'placesContainer places list':{
            itemtap:function(list,index,target,record){

      var ref = record.get('reference');
     var name = record.get('name');
    console.log(name);
      console.log(ref);

    // Instantiate a "please wait" message
    Ext.Viewport.setMasked({xtype:'loadmask', message:'Please Wait...'});

       var proxy = {
        type:'ajax',
        url:'https://maps.googleapis.com/maps/api/place/details/json?reference='+ref+'&sensor=true&key=',
        reader:{
            type:'json',
            rootProperty:'result'
        }
    }
    Ext.StoreMgr.get('Details').setProxy(proxy);
    Ext.StoreMgr.get('Details').load();

    console.log(proxy);


             Ext.getCmp('placesContainer').push({
         xtype: 'details',
       title: name
          });

       Ext.Viewport.setMasked(false);


            }
        }

    }

  }
  });

更新

 Ext.define('FirstApp.view.PlacesContainer',{
 extend:'Ext.NavigationView',

 xtype:'placesContainer',
 id:'placesView',

config:{
    title:'Places',
    iconCls:'organize',
    items:[
        {
            xtype:'places'
        }

    ]
   }
  })

1 个答案:

答案 0 :(得分:0)

可能是因为您对id: placesView进行了硬编码,请尝试使用itemId

xtype:'placesContainer',
itemId:'placesView'

为什么要itemId使用id

  

可以使用itemId作为获取对a的引用的替代方法   没有对象引用时的组件。而不是使用   使用Ext.getCmp的id,使用带有Ext.Container.getComponent的itemId   将检索itemId或id。 因为itemId是一个索引   容器的内部MixedCollection,itemId的范围是本地的   容器 - 避免与Ext.ComponentManager的潜在冲突   这需要一个唯一的ID。