1

定义模型的常规方法如下:

Ext.define('App.MyModel', {
    extend: 'Ext.data.Model',

    fields: [
        {name: 'id', type: 'int'},
        {name: 'name', type: 'string'}
    ]
});

有没有办法在 init-type 方法中指定字段(可能还有所有配置属性),类似于如何在 initComponent() 中设置组件的配置?

拥有此功能以执行诸如为某些重复属性设置本地变量之类的事情会很有用。

4

2 回答 2

1

你可以在 Javascript 中任何你想要的地方定义一个函数!

Ext.define('App.MyModel', {
    extend: 'Ext.data.Model',

    fields: function() {
        return [
            {name: 'id', type: 'int'},
            {name: 'name', type: 'string'}
        ];
    }() // important: run it immediately!
});
于 2013-06-21T15:47:02.827 回答
0

您也可以在 initComponent 中执行类似的操作。我有时会在组件内创建商店时使用它,并根据我是否希望商店自动加载来传递变量。

Ext.define('App.MyModel', {
    extend: 'Ext.data.Model',
    initFields: function(fieldType) {
        return [
            {name: 'id', type: fieldType},
            {name: 'name', type: fieldType}
        ];
    },
    initComponent: function() {
        var me = this;

        Ext.apply(me, {
            fields: me.initFields('string')
        });
        me.callParent();
    }
});
于 2013-06-21T17:33:25.793 回答