如何在sencha touch中访问商店价值

时间:2013-08-13 04:18:15

标签: sencha-touch sencha-touch-2 sencha-touch-2.1

我正试图获得这样的商店价值:

 itemtap : function(list, index, target, record) {

      Ext.getStore("nameStore").load();
      console.dir("TEST->"+record.get('id'));
      console.dir("TEST->"+record.get('address'));

}

这时我无法获得id,当itemtap时。 我也试试这个:

  var store= Ext.getStore('nameStore');
  console.dir("TEST->"+store.get('id'));
  console.dir("TEST->"+store.get('address'));

但无法获取数据。为什么这样?

这两种商店价值访问有什么区别?

我在div中添加onclick,itemtap工作正常,但在Iphone中它无法正常工作?为什么这个?在使用android Iphone和其他设备的sencha中是否存在任何替代方案。如何在itemptap中获取值,从显示在商店中的div中显示。

编辑:

 itemtap :function(list, index, target, record) {
console.log("Clicked---"+record.get('cat_id'));
}

实际上,我没有得到上面的代码。

我试试这个,并获得价值

console.log("Clicked--"+record.data.data[index].cat_id);

始终获取第一个值,因为索引值始终为0,每个类别都会被点击。 所以,我想在这里获取分类类别的索引。

工作正常,如果我这样做:

{    
          xtype: 'list', 
          itemId: 'catList',
          scrollable: false,

    data: [
    { name: 'A', cat_id: 1},
    { name: 'B', cat_id: 2},
    { name: 'C', cat_id: 3},
    { name: 'D', cat_id: 4},
    { name: 'E', cat_id: 5},


    ],
    loadingText: "Loading Words...",
    emptyText: '<div>{message}</div>',
    autoLoad:true,
    itemTpl:[
    '<tpl for=".">',
          '<span >{name}</span> ',             
      '</tpl>',
    ] 
  },

1 个答案:

答案 0 :(得分:1)

为什么要在 itemTap 回调中“重装”商店?它应该已经加载,而不必再次加载()。

即使你想更新商店,你也应该在执行record.get()之前等待load()完成。请记住 load()是异步。

第二个块永远不会起作用,因为 get()是一个记录方法,你将它重新执行到商店。

itemtap : function(list, index, target, record) {
      console.dir("TEST->" + record.get('id'));
      console.dir("TEST->" + record.get('address'));
}