При переходе к другому представлению .push работает только один раз

Я хотел бы иметь пользовательское меню (с html или кнопками, но не как «Ext.tab.Panel»), которое указывает на конкретный вид, который я хочу. Мне удалось изменить представления по клику, но теперь у меня другая проблема...

При первом запуске приложения все работает нормально... ..Приложение запускается.. Я нажимаю "Просмотр", где у меня есть список элементов... нажимаю на элемент, и открывается другое представление с подробностями. Работает? работает! :)

..... но вот проблема: - когда я перехожу к представлению (Ext.NavigationView), в котором есть список, и оттуда я нажимаю значок «домой», чтобы получить представление «Main.js», я возвращаюсь к "домой" (как и ожидалось), - когда я нажимаю на ссылку, которая снова ведет к тому же списку, он показывает мне список элементов, но НЕ ОТКРЫВАЕТ детали этого элемента снова (помните, что мы нажали другое представление, чтобы показать это )

Кто-нибудь может мне помочь? Что я делаю не так?

Вот некоторые коды моего приложения:

контроллер/Details.js

Ext.define('SkSe.controller.Details', {
extend: 'Ext.app.Controller',

config: {

    refs: {
        placesContainer:'placesContainer'
    },
    control: {
        //get me the list inside the places which is inside placesContainer
        'placesContainer places list':{
            itemsingletap:'onItemTap'
            //itemtap:'onItemTap'
        }

    }
}
,
onItemTap:function(list,index,target,record){

    console.log('You clicked an item');


    this.getPlacesContainer().push({
        xtype:'details',
        title:record.data.name,
        data:record.data
    })


}

});

контроллер/Main.js

Ext.define('SkSe.controller.Main', {
extend: 'Ext.app.Controller',

config: {
    control: {
        //define the name of the function to call when button is pressed
        homeButton: {tap: 'goToHome'},
        liveButton: {tap: 'goToLive'}
    },

    refs: {
        //button must have action='something' for reference
        homeButton: 'button[action=goToHome]',
        liveButton: 'button[action=goToLive]'
    }
},

// определяем все функции ниже

goToHome: function() {//called whenever the button is tapped
    //debug for tapping. See in console what buton you tapped so we can assign some action
    console.log('You clicked on a button that goes to Home (trouble!)');

    Ext.Viewport.animateActiveItem({xtype: 'main'},{type: 'slide',direction: 'left'});


},

goToLive: function() {//called whenever the button is tapped
    //debug for tapping. See in console what buton you tapped so we can assign some action
    console.log('You clicked on a button that goes to Live');

    Ext.Viewport.animateActiveItem({xtype: 'live'},{type: 'slide',direction: 'left'});

}

});

представление/PlacesContainer.js

Ext.define('SkSe.view.PlacesContainer',{
extend:'Ext.NavigationView',
xtype:'placesContainer',


config:{
    items:[
        {
            xtype:'places'

        },
        {
            xtype:'toolbar',
            docked:'bottom',

            items: [
                {
                    xtype: 'button',
                    title: 'Go to Akcije (placesContainer)',
                    iconCls: 'icon-akcije',
                    action:'goToHome'
                },
                {
                    xtype: 'button',
                    title: 'Go Live (live.js)',
                    iconCls: 'icon-live',
                    action:'goToLive'
                }
            ]

        }


    ]
}

});

представление/Places.js

Ext.define('SkSe.view.Places',{
extend:'Ext.Panel',
xtype:'places',

config:{

    autoLoad:true,

    title:'Akcije',
    iconCls:'icon-akcije',
    layout:'fit',
    items:[

        {
            xtype:'list',
            store:'Places',

            itemTpl:'<img src="resources/icons/{icon}"><h1>{name:ellipsis(25)}</h1><h3>{stamps}</h3>',
            itemCls:'place-entry'
        }
    ]
}

});


person Mladen    schedule 28.06.2013    source источник
comment
Какая-нибудь ошибка в консоли при попытке нажать второй раз?   -  person Titouan de Bailleul    schedule 01.07.2013


Ответы (1)


Я видел проблему, подобную этой, при использовании неописательных ссылок. Попробуйте добавить идентификатор к своим кнопкам и ссылаться на них.

i.e. homeButton: '#homeButton'

person bwags    schedule 18.07.2013