Метод с ошибкой 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, время: 21:26. |