ExtJS7: тег привязки не учитывает внешние маршруты

Если маршрут просмотра ext используется с тегом привязки, нажатие на эту ссылку всегда открывает новую вкладку. Это принудительно переведет все приложение ext в новую вкладку. Есть ли способ заставить тег привязки или привязку в html перенаправить ct на это представление, а не в приложение

                        {
                            xtype: 'component',
                            autoEl: {
                                tag: 'a',
                                html: 'Some Action',
                                href: '#someroute'
                                class: 'link-some-action'
                            },
                            listeners: {
                              click: function(){
                                console.warn("I AM TRAPPED");
                              }
                            }
                        }

OR

                        {
                            xtype: 'box',
                            html: '<a href='#someaction' class="link-some-action"> Saome Action </a>',
                            listeners: {
                              click: function(){
                                console.warn("I AM TRAPPED");
                              }
                            }
                        }

В обоих случаях, как показано на рисунке, нажатие на элемент открывает новую вкладку, что приводит к повторной загрузке приложения.


person ducktyped    schedule 13.03.2020    source источник
comment
как насчет использования метода контроллера redirectTo вместо ссылки?   -  person LightNight    schedule 13.03.2020
comment
но как нам это назвать тогда в пользовательском html или autoEl   -  person ducktyped    schedule 13.03.2020
comment
так что вы не знаете, как слушать событие клика?   -  person LightNight    schedule 13.03.2020


Ответы (1)


в вашем случае вы должны добавить слушателя в el, вот скрипка

Ext.define('Controller', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.mycontroller',

    onElClick:function(){
        console.log("I AM FREE");
        this.redirectTo("test")
    }

});
Ext.create('Ext.panel.Panel', {
    style: "border: 1px solid red",
    height: 100,
    controller:"mycontroller",
    title: "test",

    renderTo: Ext.getBody(),
    items: [{
        xtype: 'component',
        autoEl: {
            tag: 'a',
            html: 'Some Action',
            href: '#someroute',
            class: 'link-some-action'
        },
        listeners: {
            el: {
                click: "onElClick"
            }
        }
    }]
})
person LightNight    schedule 13.03.2020