2014-03-30 58 views
2

我目前正在嘗試在應用程序中保留排序的度量存儲庫(音樂意義上的)。我努力讓商店的排序功能正常工作。我有一個與'索引'類別定義的模型。我的店也被定義如下:對hasMany關係存儲中的數據進行排序Sencha Touch/ExtJS

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

由於措施屬於聲音,我最終調用

voice.measures() 

得到用一個聲音相關的所有措施。據我所知,這返回了一個商店的所有措施。

那麼我的問題是什麼是最好的方法來保持這個措施清單排序,因爲我添加措施的商店?顯然,返回的商店不是上述定義的商店。

回答

0

您不必爲度量定義商店。由於語音商店已經採取了措施,因爲措施屬於語音。

所有你需要做的就是調用

voice.measures().sort('index', 'ASC') 

這將排序所有的測量記錄,並對其進行排序上升-LY的索引字段。

2

當你定義在語音措施的hasMany關聯,您應該能夠建立分類有:

hasMany:[ 
    { 
     model:'MusicNotationSoftware.model.Measure', 
     name:'measures', 
     storeConfig: { 
      sorters: [ 
       { property: 'index', direction: 'ASC' } 
      ] 
     } 
    } 
] 

或相似。

0

根據TomW的回答。它應該是storeConfig而不是store。

hasMany:[ 
    { 
     model:'MusicNotationSoftware.model.Measure', 
     name:'measures', 
     storeConfig :{ 
      sorters: [ 
       { property: 'index', direction: 'ASC' } 
      ] 
     } 
    } 
] 

它爲我工作。