Вопрос

Всякий раз, когда я создаю компонент с URL-адресом, Ext Js 4 добавляет к ссылке ?undefine.Как я могу избавиться от этого?

Ext.onReady(function() {
                Ext.create('Ext.toolbar.Toolbar', {"items":[{"text":"Dashboard","xtype":"button","target":"_self","href":"https:\/\/domain.tld\/admin\/"},{"text":"Categories","xtype":"button","menu":{"items":[{"text":"New","xtype":"button","target":"_self","href":"https:\/\/domain.tld\/admin\/category\/create\/"}]}}],"renderTo":"admin_menu","width":"100%"});
            });

Нажав на панель управления, вы перейдете к https://domain.tld/admin/dashboard?unопределенный

Это было полезно?

Решение

Я посмотрел на источник, чтобы выяснить, как он создает URL-адреса.Он берет конфигурацию href и добавляет конфигурацию params, не проверяя, определены ли параметры.Затем добавляет конфигурацию baseParams.Поэтому, если вам нужна ссылка без строки запроса, создайте кнопку с пустой конфигурацией параметров.

Ext.create("Ext.button.Button", {href:'www.google.com', params:'',text:'Link',target:'_self'});

Другие советы

Документация EXTJS не упоминает href В качестве поддерживаемой опции конфигурации для панели инструментов.

Вместо указания target а также href, Я предлагаю указать функцию обработчика. Что -то в зависимости от:


{
  text:'Dashboard',
  handler:function(){
    //window.open(...) or window.location.href=...
  }
//...
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top