在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'
});
再次尝试创建一个存储并检查上面的模型字段,现在您将得到一个包含两个元素的数组,如预期的那样。
即使有可能,我也不会推荐它。您很有可能在应用程序的其他地方需要此模型定义。