¿Cómo seleccionar una tarjeta en un carrusel por elemento de menú en una lista de menú acoplada en Sencha touch?

No puedo averiguar cómo puedo recuperar un elemento de datos dado en una tienda (número de identificación) para enviarlo al método "setActiveItem" en un oyente: Entonces tengo una tienda - modelo:

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

        ]
    });

Aquí está mi menuList llamado "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!!!);               
}                
}
            }

        });

y el carrusel ...

       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">'       
        },

Si llamo

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

funciona con la tarjeta llamada, pero ¿cómo puedo obtener el número de la identificación del elemento seleccionado en el menú Lista / tienda? Por cierto: que significa:

if (registros [0]) {¿por qué [0]?

preguntado el 27 de agosto de 11 a las 22:08

if (records[0]) se debe a que los registros siempre son una matriz, incluso si es un solo elemento, por lo que la verificación de registros [0] es solo para asegurarse de que haya al menos un elemento seleccionado ... como para su otra pregunta, todo lo que diré es la información que desea es en los registros [0] .data ... no puede "setActiveTarget" porque no es un elemento en su contenedor de carrusel .. -

1 Respuestas

ENCONTRÉ LA RESPUESTA PARA MÍ MISMO, ES FÁCIL:

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

El secreto para obtener la entrada de registro es ".get ()":

records[0].get('arrayfield')

Así que ahora puedo cambiar el elemento activo en el carrusel fácilmente ...

Respondido el 07 de diciembre de 11 a las 18:12

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.