我有一个通过代理收集数据的商店。我成功地使用数据创建了一个ItemList。
我的问题是我正在尝试将商店中的数据分配给变量供以后使用。
我可以使用数据的唯一地方是:
itemTpl: '{term} - {tid}',
第一个变量(term)是一个字符串,tid是一个整数。我需要单独使用整数,但似乎我不能使用除上述格式之外的数据。
答案 0 :(得分:0)
如果您在YourApp/store
目录中定义Sencha Touch商店,则可以全局使用商店(及其数据)。
一个例子:
你的模特&商店可能就像......
Ext.define('YourApp.model.Example', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'id', type: 'int'},
{name: 'term', type: 'string'}
]
}
});
Ext.define('YourApp.store.Example', {
extend: 'Ext.data.Store',
config: {
storeId:'exampleStore',
model: 'YourApp.model.Example',
proxy: {} //your proxy config
}
});
如果您有一个已填充的商店(如您所示),您可以使用它来填充选择字段,列表,......使用其storeId。
{
xtype: 'selectfield',
label: 'Term',
name: 'term',
store: 'exampleStore', //storeId
displayField: 'term',
valueField: 'id'
}
或者您可以使用商店getData()
或getRange()
方法手动访问商店及其数据。 (见http://docs.sencha.com/touch/2.3.1/#!/api/Ext.data.Store)
var store = Ext.getStore('exampleStore'); //storeId
console.log(store.getData().all[index_of_record]); //record
console.log(store.getData().all[index_of_record].data); //data object
console.log(store.getData().all[index_of_record].data.id); //id property
console.log(store.getData().all[index_of_record].data.term); //term property