我有2个型号:噪音和雷达,现在我需要一个商店来保存它们:
我调用的商店:DataBufferStore。他们之间的关系:
一个DataBufferStore有6个名为:
的数组Noises,Radars,PreviousNoises,PreviousRadars,PPNoises,PPRadars。
PP意味着甚至在之前 - >上一页上一页。
所以我想调用DataBufferStore以便以类似于以下方式获取这6个数据数组: DataBufferStore.Noises [X] DataBufferStore.PrevousNoises [Y] DataBufferStore.PPNoises [Z]
DataBufferStore.Radars [X] DataBufferStore.PrevousRadars [Y] DataBufferStore.PPRadars [Z]
这6个阵列是噪声模型和雷达模型的数组。
我可以这样做吗?
Ext.define('myApp.model.DataBuffer', {
extend: 'Ext.data.Model',
config: {
fields: [
{ name: 'datetime', type: 'date' }
],
associations: [
{ type: 'hasMany', model: 'myApp.model.radar', name: 'Radars' },
{ type: 'hasMany', model: 'myApp.model.Noise', name: 'Noises' },
{ type: 'hasMany', model: 'myApp.model.radar', name: 'PreviousRadars' },
{ type: 'hasMany', model: 'myApp.model.Noise', name: 'PreviousNoises' },
{ type: 'hasMany', model: 'myApp.model.radar', name: 'PPRadars' },
{ type: 'hasMany', model: 'myApp.model.Noise', name: 'PPNoises' }
]
}
});
答案 0 :(得分:0)
是的,你可以。
由于它是在Documentation中编写的,您可以创建链接到模型的商店(与数组相同),并将其与模型相关联。
Ext.define('Product', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'id', type: 'int'},
{name: 'user_id', type: 'int'},
{name: 'name', type: 'string'}
]
}
});
Ext.define('User', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'}
],
// we can use the hasMany shortcut on the model to create a hasMany association
hasMany: {model: 'Product', name: 'products'}
}
});
这允许你使用商店方法,其中一些bieng非常有用。 要访问商店(或您调用的数组),您可以这样做:
var products = user.products();
然后使用此var
访问您的元素。
我强烈建议阅读文档以获取更多相关信息。
PS:如果你的前一个雷达'与您的“雷达”相关联,您甚至可以将关联嵌套并将其放入Radar模型中,该模型链接到Radar模型,并将其称为PreviousRadar。这样你就可以拥有任意数量的Previous。
编辑:解释PS部分: 你的数据存储器只有原始的雷达和噪音:
Ext.define('myApp.model.DataBuffer', {
extend: 'Ext.data.Model',
config: {
fields: [
{ name: 'datetime', type: 'date' }
],
associations: [
{ type: 'hasMany', model: 'Radar', name: 'Radars' },
{ type: 'hasMany', model: 'Noise', name: 'Noises' },
]
}
});
您的雷达(或噪音)与自身有关联:
Ext.define('myApp.model.Radar', {
extend: 'Ext.data.Model',
config: {
fields: [
{ name: 'radarName', type: 'string' }
],
associations: [
{ type: 'hasOne', model: 'Radar', name: 'previousRadar' },
]
}
});
这样,您就可以直接在雷达和前一个雷达之间建立链接。如果您有一个雷达的先前雷达,您可以使用hasMany
代替。
我建议您查看here以了解有关侦听器的问题(这适用于存储中的侦听器,但您可以对实现Observable接口的每个对象执行相同操作)。
您可以在here找到可以收听的事件。 addrecords
可能是您正在寻找的那个。