extjs 在Ext.define中使用Ext.crete

nlejzf6q  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(186)

在Ext.define调用中使用Ext.create调用是否安全?
示例:

Ext.define('app.store.MyStore',{
   extend: 'Ext.data.Store',

   model: Ext.create('Ext.data.Model', {

     idProperty: 'Id',
     fields: [
        { name: 'Id', type: 'number' },
        { name: 'Name', type: 'number' }
     ]
   }), 
   ...
uyto3xhc

uyto3xhc1#

不,它不是。实际上,在您的代码中,模型定义甚至没有到达存储。尝试创建一个存储的示例,并检查存储的模型具有哪些字段:

const myStore = Ext.create('app.store.MyStore');
console.log(myStore.getModel().getFields());

结果将是一个空数组。现在定义你的模型并像这样存储:

Ext.define('app.store.MyModel', {
    extend: 'Ext.data.Model',
    idProperty: 'Id',
    fields: [{
        name: 'Id',
        type: 'number'
    }, {
        name: 'Name',
        type: 'number'
    }]
});

Ext.define('app.store.MyStore', {
    extend: 'Ext.data.Store',
    model: 'app.store.MyModel'
});

再次尝试创建一个商店,并像上面一样检查模型字段,现在您将得到一个包含两个元素的数组,正如预期的那样。
即使有可能,我也不推荐它。在应用程序的其他地方,您很可能需要这个模型定义。

相关问题