0

これが失敗するのはなぜcannot call method 'getProxy' of undefinedですか?

{
    name: 'customer_name',
    xtype: 'combobox',
    fieldLabel: 'Customer',
    emptyText: 'ex. Google',
    allowBlank: false,
    queryMode: 'local',
    store: Ext.create('Ext.data.ArrayStore', {
        storeId: 'myStore',
        fields: ['name'],
        data: [ 'google', 'facebook', 'twitter']
    }),
    displayField: 'name'
}

ドキュメントから取られた...

このコードでは 100% 失敗します。

4

2 に答える 2

1

終了引用符が欠落していると思います'name

このコードは正常に動作します

Ext.widget({
    name: 'customer_name',
    xtype: 'combobox',
    fieldLabel: 'Customer',
    emptyText: 'ex. Google',
    allowBlank: false,
    queryMode: 'local',
    store: Ext.create('Ext.data.ArrayStore', {
        storeId: 'myStore',
        fields: ['name'],
        data: [ 'google', 'facebook', 'twitter']
    }),
    displayField: 'name'
})
于 2013-09-06T21:54:22.023 に答える
1

問題は、オブジェクトのプロトタイプで項目を定義している可能性があります。クラスがインスタンス化されるときではなく、クラスを定義するときにストアをインスタンス化しようとするため、それはすべてのインスタンスで共有されることを意味するため、これを行うべきではありません。

それ以外の

Ext.define('my.Panel', {
    items: {
        name: 'customer_name',
        xtype: 'combobox',
        fieldLabel: 'Customer',
        emptyText: 'ex. Google',
        allowBlank: false,
        queryMode: 'local',
        store: Ext.create('Ext.data.ArrayStore', {
            storeId: 'myStore',
            fields: ['name'],
            data: [ 'google', 'facebook', 'twitter']
        }),
        displayField: 'name'
    } 
});

行う

Ext.define('my.Panel', {
    initComponent: function() {
        this.items =  {
            name: 'customer_name',
            xtype: 'combobox',
            fieldLabel: 'Customer',
            emptyText: 'ex. Google',
            allowBlank: false,
            queryMode: 'local',
            store: {
                // Let Ext instantiate the store
                type: 'array',
                // Don't use this, it's an euphemism for a global
                storeId: 'myStore',
                fields: ['name'],
                data: [ 'google', 'facebook', 'twitter']
            },
        displayField: 'name'
    } 
});
于 2013-09-06T22:28:08.753 に答える