Метод с ошибкой Ext.window.Window.setTitle()
Здравствуйте!
Версия Ext 4.1.1 Обнаружил что метод setTitle вызывает ошибки в работе окон. К примеру такой код: var w = Ext.create('Ext.window.Window', { title: 'Hello', height: 200, maximizable:true, width: 400 }); w.setTitle("bug-bug"); w.show(); В нем выставлена опция maximizable:true, но если был изменен заголовок окна методом setTitle, то распахнуть такое окно уже не удасться. Дальше если появляется еще одно окно того же класса, то из первого окна кнопки maximize и close перемещаются в заголовок второго. Правда этот второй глюк воспроизвести не так просто как первый. Может есть у кого решение первого глюка? |
до вызова show элемент не отрендерен, видимо поэтому setTitle отрабатывает не так как задумано))
|
Да, действительно так и вышло. Выходит надо делать так:
window.show(); window.setTitle(title); window.hide(); |
Нет, не так. Нужно вот так:
if (window.rendered) { window.setTitle(title); } else { window.title = title; } |
В итоге выкрутился так:
/** * Хак, исправляющий ошибку, возникающую при попытке * установить заголовок, если объект не отрисован. */ Ext.override(Ext.panel.Panel, { setTitle: function(newTitle) { var me = this; if (me.rendered) { me.callParent(arguments); } else { me.title = newTitle; } } }); |
Часовой пояс GMT +3, время: 09:21. |