2011-11-25 46 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', 
    ... 
    }