2011-11-25 71 views
0

我試圖商店加載到煎茶觸摸2.0選擇欄顯示的價值,但有一個奇怪的proble: 對於下面的代碼:煎茶觸摸selectfield不能從數據存儲

 { 
      xtype : 'list', 
      store : 'Docbases', 
      itemTpl : 'Hello {docbase}!' 
     }, { 
      xtype : 'selectfield', 
      label : 'Docbase', 
      id : 'docbase', 
      store : 'Docbases', 
      displayField : 'docbase', 
      valueField : 'docbase', 
      placeHolder : 'Select a Value' 

     } 

列表組件可以顯示好吧,selectfield不能顯示值。當點擊上selectfield,我有一個控制檯錯誤:

Uncaught TypeError: Cannot call method 'get' of null 

我的商店被聲明爲:

Ext.define('FDMobileClient.store.Docbases', { 
    extend : 'Ext.data.Store', 
    requires : ['FDMobileClient.model.Docbase'], 
    model : 'FDMobileClient.model.Docbase', 
    autoLoad : true, 
    proxy : { 
     type : 'ajax', 
     url : '/MobileInternalProject/mobile/getDocbaseList.action', 
     reader : { 
      type : 'json', 
      root : 'docbases' 
     } 
    }, 

}); 

沒有人有任何想法,我做錯了什麼:(

我謝謝你的幫助。謝謝

回答

1

您的商店對我來說似乎很好。這就是我做了什麼,得到的排序:

config: { 
    ... 
    docStore : null 
    ... 
}, 
  • 在你看來INIT

    • 在您的視圖配置

      initialize: function() { 
          ... 
          docStore = Ext.create('FDMobileClient.store.Docbases'); 
          ... 
      }, 
      
    • 終於爲您selectfield

      代碼
      { 
          xtype : 'list', 
          store : 'Docbases', 
          itemTpl : 'Hello {docbase}!' 
      }, { 
          xtype : 'selectfield', 
          label : 'Docbase', 
          id : 'docbase', 
          store : docStore, //NOTE: no quotes! 
          displayField : 'docbase', 
          valueField : 'docbase', 
          placeHolder : 'Select a Value' 
      
      } 
      

    它爲我工作,它應該也適合你。祝你好運,Alex

  • 1

    你應該給你的sto請重新輸入ID並在提及商店時使用此標識符:

    Ext.define('FDMobileClient.store.Docbases', { 
    extend : 'Ext.data.Store', 
    requires : ['FDMobileClient.model.Docbase'], 
    model : 'FDMobileClient.model.Docbase', 
    id : 'DocbaseStore' 
    ... 
    } 
    { 
    ... 
    store : 'DocbaseStore', 
    displayField : 'docbase', 
    ... 
    }