我目前正试图在应用程序中保留一个有序的商店测量(在音乐意义上)。我正在努力让商店的排序功能起作用。我有一个定义了' index'类别的模型。我的商店也定义如下:
Ext.define('MusicNotationSoftware.store.Measures', {
extend: 'Ext.data.Store',
requires: [
'Ext.ux.parse.data.proxy.Parse',
'MusicNotationSoftware.model.Measure'
],
config: {
model: 'MusicNotationSoftware.model.Measure',
storeId: 'measuresStore',
autoLoad: true,
autoSync: true,
proxy: {
type: 'parse',
url: 'https://api.parse.com/1/classes/Measure'
},
sorters: [
{
property: 'index',
direction: 'ASC'
}
],
由于措施属于Voices,我最终会调用
voice.measures()
获取与单个语音相关的所有度量。据我所知,这将返回一个包含所有度量的商店。
我的问题是,当我向商店添加度量时,保持这个度量列表的最佳方法是什么?显然,返回的商店不是上面定义的商店。
答案 0 :(得分:2)
在Voice中定义度量hasMany关联时,您应该可以在那里设置排序:
hasMany:[
{
model:'MusicNotationSoftware.model.Measure',
name:'measures',
storeConfig: {
sorters: [
{ property: 'index', direction: 'ASC' }
]
}
}
]
或类似。
答案 1 :(得分:0)
您无需为度量定义商店。由于语音存储已经填充了措施,因为措施属于语音。
您所要做的就是致电
voice.measures().sort('index', 'ASC')
这将对所有度量记录进行排序,并在索引字段上对它们进行升序排序。
答案 2 :(得分:0)
根据TomW的回答。它应该是storeConfig而不是store。
hasMany:[
{
model:'MusicNotationSoftware.model.Measure',
name:'measures',
storeConfig :{
sorters: [
{ property: 'index', direction: 'ASC' }
]
}
}
]
它对我有用。