在Ext.define中使用Ext.crete

  • 本文关键字:Ext crete define extjs
  • 更新时间 :
  • 英文 :


在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' }
]
}), 
...     

不,不是。事实上,在您的代码中,模型定义甚至没有到达存储区。尝试创建您的商店的实例,并检查商店的模型有哪些字段:

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'
});

再次尝试创建一个存储并检查上面的模型字段,现在您将得到一个包含两个元素的数组,如预期的那样。

即使有可能,我也不会推荐它。您很有可能在应用程序的其他地方需要此模型定义。

最新更新