1

アイテムをテーピングすると、リスナーが呼び出されますが、値はnullです。私のコード:

Ext.define('tablet.SelectCategories', {
    extend: 'Ext.navigation.View',
    xtype: 'selectcategorypanel',
    id: 'SelectCategories',
    requires:[

    ],

    initialize:function(){
       this.callParent();

       var jsonObject = Ext.create('Tablet')
           .make_webservice_call_post('get_categories');

       Ext.getCmp('select_category_list')
           .setData(jsonObject.info);

       console.log(jsonObject.info);
     },

    config: {
        //title : 'Select Categories',
        //iconCls: 'team',
        //styleHtmlContent: true,
        // scrollable: true,
        layout: {
            type: 'card'
        },

        items: [
            {
                fullscreen: true,
                mode: 'MULTI',
                xtype: 'list',
                itemTpl: '{name}',
                autoLoad: true,
                id:'select_category_list',
                store: {
                    fields: ['active','created','description','name']
                },
                listeners: {
                    itemtap: function (list, records) {
                        console.log('Sel');
                        console.log(records.name);
                        var names = [];
                        Ext.Array.each(records, function (item) {
                            names.push('<li>' + item.data.name + '</li>');
                        }); // each()
                        Ext.Msg.alert('You selected ' + records.length + ' item(s)',
                             '<ul>' + names.join('') + '</ul>');
                    } // selectionchange
                }

                // handler:self.itemClick         
            }

console.log(records.name);で未定義を取得しています。

4

1 に答える 1

1

のメソッドシグネチャitemtapも間違っています。そのはず -

itemtap: function(list, index, target, record) {
    console.log('Item tapped');
    console.log(record.get('name'));

    // and your rest of the code.
}

ここitemtapでイベントのドキュメントを確認し、ここでストアの詳細を確認してください。

于 2013-03-22T06:12:42.777 に答える