0

私はこのような店の価値を取得しようとしています:

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

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

}

ここでは、itemtap のときに ID を取得できません。そして私もこれを試します:

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

しかし、データを取得できませんでした。なぜこれ?

この 2 種類のストア値アクセスの違いは何ですか?

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

1 に答える 1

1

itemTapコールバックでストアを「リロード」しているのはなぜですか? すでにロードされているはずであり、再度 load() する必要はありません。

ストアを更新したい場合でも、record.get() を実行する前に load() が終了するのを待つ必要があります。load()は非同期であることを忘れないでください。

get()はレコードのメソッドであり、ストアに対して実行しているため、2 番目のブロックは機能しません。

itemtap : function(list, index, target, record) {
      console.dir("TEST->" + record.get('id'));
      console.dir("TEST->" + record.get('address'));
}
于 2013-08-13T07:47:44.257 に答える