Как выбрать карточку в карусели по пункту меню в списке закрепленных меню в Sencha touch? - PullRequest
0 голосов
/ 28 августа 2011

Я не могу понять, как я могу получить данный элемент данных в хранилище (id-номер), чтобы отправить его методу setActiveItem в слушателе Итак, у меня есть магазин - модель:

    Ext.regModel('PictureItem', {
        fields: ['id', 'titel', 'url']
    });
    var pictureItems = new Ext.data.Store({
        model: 'PictureItem',
        data: [
            {id:1, titel:'page 1', url:'http://placekitten.com/1024/768'},
            {id:2, titel:'page 2', url:'http://placekitten.com/1024/768'},
            {id:3, titel:'page 3', url:'http://placekitten.com/1024/768'},

        ]
    });

Вот мой список меню под названием "leftList":

    var leftList = new Ext.List({
        dock: 'left',
        id:'list1',
        width: 135,
        overlay: true,
        itemTpl: '{titel}',
        singleSelect: true,
         defaults: {
            cls: 'pic'
        },
        store: pictureItems,
        listeners:{
            selectionchange: function (model, records) {
                if (records[0]) {
    Ext.getCmp('karte').setActiveItem(!!!Here the number of the selected Item 

or respondend "id" in the data store!!!);               
}                
}
            }

        });

и карусель ....

       var carousel = new Ext.Carousel({
                id: 'karte',
        defaults: {
            cls: 'card'
                     },


         items: [{
            scroll: 'vertical',
            title: 'Tab 1',
            html: '<img class="orientation" alt="" src="img_winkel/titel_v.jpg">'       
        },

Если я позвоню

Ext.getCmp('karte').setActiveItem(2);

работает с вызываемой картой - но как узнать номер по идентификатору выбранного пункта в меню Список / Магазин ???? Кстати: что значит:

if (records [0]) { почему [0]?

1 Ответ

0 голосов
/ 29 августа 2011

Я НАШЕЛ ОТВЕТ ЗА СЕБЯ - ЭТО ЛЕГКО:

Ext.getCmp('karte').setActiveItem(records[0].get('id'), {type: 'slide', direction: 'left'});

Секрет получения записи: ".get ()":

records[0].get('arrayfield')

Так что теперь яможно легко изменить activeItem в карусели ...

...