Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.03.2013, 21:46
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Метод с ошибкой 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 перемещаются в заголовок второго. Правда этот второй глюк воспроизвести не так просто как первый.

Может есть у кого решение первого глюка?
Ответить с цитированием
  #2 (permalink)  
Старый 01.03.2013, 21:58
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

до вызова show элемент не отрендерен, видимо поэтому setTitle отрабатывает не так как задумано))
Ответить с цитированием
  #3 (permalink)  
Старый 01.03.2013, 22:02
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Да, действительно так и вышло. Выходит надо делать так:

window.show();
window.setTitle(title);
window.hide();
Ответить с цитированием
  #4 (permalink)  
Старый 01.03.2013, 22:04
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Нет, не так. Нужно вот так:

if (window.rendered) {
    window.setTitle(title);
} else {
    window.title = title;
}
Ответить с цитированием
  #5 (permalink)  
Старый 01.03.2013, 22:11
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

В итоге выкрутился так:

/**
 * Хак, исправляющий ошибку, возникающую при попытке 
 * установить заголовок, если объект не отрисован.
 */
Ext.override(Ext.panel.Panel, {
	setTitle: function(newTitle) {
      var me = this;
      if (me.rendered) {
      	me.callParent(arguments);
      } else {
      	me.title = newTitle;
      }
	}
});

Последний раз редактировалось khusamov, 01.03.2013 в 22:20.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Общие вопросы Javascript 1 13.04.2011 22:09
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Internet Explorer 1 13.04.2011 21:59
Как узнать у какого объекта вызван метод. Scalar Events/DOM/Window 4 26.03.2010 11:10
Как по событию вызвать метод определенного экземпляра объекта jvs jQuery 3 24.12.2009 16:04
Добавить свой метод к элементу alekciy Events/DOM/Window 6 16.02.2009 19:29