试图通过initComponent将参数传递给item数组

时间:2014-09-04 08:19:39

标签: extjs extjs4

我有一个带有组合的表单,我试图找出一种将组合值传递给组合小部件的简单方法。

基本上我将数组传递给我的表单,如下所示:

    var contentPanel = Ext.create('MyForm', {
        countryCodesForCombo: _this.countryCodesForCombo,
    });

这意味着数据来自 initComponent 方法。

Ext.define('MyForm', {
    extend: 'Ext.form.Panel',

    initComponent : function (){

        var cCodes = this.countryCodesForCombo;

        this.callParent();
    },
    items: [
        {
            fieldLabel: 'Hi',
            xtype: 'combobox',
            name: 'land',
            displayField:'name',
            store: {
                fields: ['name'],
                data: this.countryCodesForCombo // <--- want to get country codes somehow here
            }
        }
    ]
});

但是值无法到达项目对象。

基本上我的问题是,如何通过 initComponent 方法将值传递到items数组中?

1 个答案:

答案 0 :(得分:2)

您的商店看起来不对劲。您必须创建商店对象。

这将有效:

Ext.define('MyForm', {
    extend: 'Ext.form.Panel',

    initComponent : function (){

        this.store = Ext.create('Ext.data.Store', {
            fields: ['name'],
            data: this.countryCodesForCombo
        });

        Ext.apply(this, {

                    items: [{

                        fieldLabel: 'Hi',
                        xtype: 'combobox',
                        queryMode: 'local',
                        name: 'land',
                        displayField:'name',
                        store: this.store                    
                    }]
        });

        this.callParent();
    },

});

以下是:https://fiddle.sencha.com/#fiddle/9ru

的小提琴链接