2013-04-12 121 views
0

我有一個應用程序,它在form.Panel中有一個窗體,當用戶按下搜索它會在tab.Panel.Panel.That中顯示結果,所有工作正常,並且標籤首先工作正常時間周圍。我有一個按鈕,允許用戶返回到form.Panel並輸入不同的信息。用戶再次按下搜索,所有內容都顯示正常,但是如果您從初始選項卡更改並嘗試返回,則不會顯示任何內容。我在控制檯中沒有任何錯誤,只是一個帶有標籤欄的空面板。有人知道這可能會發生什麼原因嗎?Ext.tab.Panel not displayed content

貨品TAP控制器:

 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

我已經添加了代碼到原來的問題,我可以添加更多的代碼,如果需要的 – paulpwr

+0

幾個小時後,我認爲問題是添加一個ID到navigationView。我已經添加了上面的代碼。我在上面的列表項中使用ID – paulpwr

回答

0

這可能是因爲你硬編碼id: placesView,嘗試使用itemId代替。

xtype:'placesContainer', 
itemId:'placesView' 

爲什麼使用itemId超過id

An itemId can be used as an alternative way to get a reference to a component when no object reference is available. Instead of using an id with Ext.getCmp, use itemId with Ext.Container.getComponent which will retrieve itemId's or id's. Since itemId's are an index to the container's internal MixedCollection, the itemId is scoped locally to the container - avoiding potential conflicts with Ext.ComponentManager which requires a unique id.

+0

你有任何如何使用itemId使用Ext.Container.getComponent的例子嗎?我已經嘗試過:Ext.placesContainer.getComponent('placesView')push({獲得此警告:未捕獲TypeError:無法調用未定義的方法'getComponent' – paulpwr

+0

要退出'itemId',您需要使用[Ext.ComponentQuery]( http://docs.sencha.com/touch/2-1/#!/api/Ext.ComponentQuery)。例如:'Ext.ComponentQuery.query('#placesView')[0]' – Eli

+0

所以這就是我完成@ user1479606:var detail = Ext.ComponentQuery.query('#placesView')[0]; console.log(detail); detail.push({ xtype:'details', title:name } ); 它在第一時間完美運行,但第二次圍繞它開始增加數組的細節,而不是通過新的屏幕 – paulpwr