2013-08-13 2 views
0

Я пытаюсь получить значение магазина, как это:Как получить доступ к стоимости магазина в сенче прикосновении

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

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

} 

Здесь я не могу получить идентификатор, когда itemtap. и я также попробовать это:

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

Но не может получить данные. Почему это?

и В чем разница между этими двумя типами доступа к стоимости магазина?

Я добавляю onclick внутри div, itemtap работает нормально, но в Iphone он не работает? почему это? Есть ли какая-либо альтернатива в sencha, работающей как с Android Iphone, так и с другими. Как получить значение в 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

Почему вы 'перезагрузку' в магазине на itemTap обратного вызова? Он должен быть уже загружен и не нужен для загрузки().

Даже если вы хотите вернуть магазин, вам следует дождаться завершения загрузки(), прежде чем делать record.get(). Запомнить load() is async.

Второй блок никогда не будет работать, потому что get() - это метод записи, который вы выполняете в магазине.

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

Я также попробую это, console.log («Clicked -» + record.get ('id')); но не мог получить значение. Я пытаюсь выше. –

+0

Почему я не получаю точного значения от record.get (index)); value.Here каждое нажатие я получаю 0. –

+0

index - это числовой индекс записи в магазине. Вы можете сохранить.getAt (index), чтобы получить определенную запись. index = 0 означает, что пользователь нажимает на элемент списка, который сохраняется как первая запись в хранилище. record.get (поле) - для чтения значения определенного поля записи. –

Смежные вопросы