When I create a WsapiDataStore, store.data.items and store.data.keys return empty arrays although I am able to see the keys and items when I do console.log(store.data)
store = Ext.create('Rally.data.WsapiDataStore', {
model: 'Defect',
context: {
project: '/project/xxxxxx'
},
autoLoad: true,
fetch: ['Rank', 'FormattedID', 'Name']
});
Output of console.log(store.data):
constructor {items: Array[0], map: Object, keys: Array[0], length: 0, allowFunctions: false…}
allowFunctions: false
events: Object
generation: 8
getKey: function (record) {
hasListeners: HasListeners
items: Array[7]
keys: Array[7]
length: 7
map: Object
sorters: constructor
__proto__: TemplateClass
Notice how the first line says “items: Array[0]” and “keys: Array[0]” but when expanded it says “items: Array[7]” and “keys: Array[7]”. I’m also able to see the 7 records when I expand further.
Everything works as expected when I add a load listener and access the data from the listener function (but I don’t want to do that)
I think the best way is to process the data via two Rally.data.WsapiDataStore’s. You’ll need to chain the listeners for the two stores together in order to properly handle the asynchronous loads. Here’s an example that illustrates the process: