Sencha Touch 2分配变量

时间:2014-01-07 00:30:18

标签: variables sencha-touch-2

我有一个通过代理收集数据的商店。我成功地使用数据创建了一个ItemList。

我的问题是我正在尝试将商店中的数据分配给变量供以后使用。

我可以使用数据的唯一地方是:

itemTpl: '{term} - {tid}',

第一个变量(term)是一个字符串,tid是一个整数。我需要单独使用整数,但似乎我不能使用除上述格式之外的数据。

1 个答案:

答案 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