Sencha Touch selectfieldはデータストアの値を表示できません

私はsencha touch 2.0のSelectフィールドにストアをロードしようとしていますが、奇妙なprobleがあります: 次のコードの場合:

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

        }

selectfieldは値を表示することはできませんが、リストコンポーネントはうまく表示できます。そのselectフィールドをクリックすると、コンソールエラーが表示されます。

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'
        }
    },

});

誰かが私が間違ってやっているアイディアを持っていますか?(

私はあなたのすべての助けに感謝しています。ありがとう

長いです

0

2 答え

あなたの店は私にはうまく見えます。それがソートされたものです:

  • in your view config:

    config: {
       ...
       docStore : null
       ...
    },
    
  • in your view init:

    initialize: function() {
       ...
       docStore = Ext.create('FDMobileClient.store.Docbases');
       ...
    },
    
  • finally the code for your 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'
    
    }
    

それは私のために働いた、それはあなたのためにも良いはずです。幸運、アレックス

1
追加された

あなたの店にIDを与え、店を参照するときにこの識別子を使用する必要があります:

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