Не создавать новое окно в extjs
Доброе время суток. Требуется помощь по EXTJS. Функция создает окно с некой информацией, в этой функции при onclik вызывается эта же функция, но грузится другая информация и создается еще одно окно. Мне нужно, чтобы информация грузилась в существующие окно и не создавалось новое. Надеюсь на вашу помощь.
|
Нужно больше кода. Куда грузится, какая информация? Зачем функция по созданию окна вызывает сама себя? Кажется проблема тут больше в структуре приложения чем во владении фреймворком
|
Цитата:
function showWindow(w,h,title,m,s,close){
if(!win){
var win = new Ext.Window({
width: w,
height: h,
title: title,
html:m,
autoScroll: true,
layout:'fit',
bodyStyle:{'background-color': '#e4e4e4','background': s}
})
}}
вот, функция рабочая, никаких проблем нету. Нужно всего-лишь, чтобы при повторном вызове данной функции, не открывалось новое окно, а все происходило в существующем. |
Как видно из магического оператора new этот код не просто вызывает открытие окна, а создает новое окно.
Если просто взять и переписать ее так чтобы она работала уже с существующим окном, то это может повлечь за собой магические изменения по всему проекту, особенно если там все запущено в части структуры. Тем более там упоминались какие-то рекурсивные вызовы. Надеюсь Вы это понимаете. Если вы все же хотите этого, то всего лишь надо создать экземпляр этого окна на более высоком уровне видимости, доступном функции, а на уровне функции изменять соответствующие его свойства, а не создавать новое окно. Это опять же не вопрос фреймворка, это вопрос базовых концепций программирования и понимания логики приложения. |
Цитата:
|
Вы хотели сказать "я новичок в программировании", не так ли?
Проблема-то тут не в ExtJs. Код мне писать влом, потмоу что это не поможет, будет тупо работой за вас, да и данных маловато - здесь пахнет куском большой программы. Зато я могу понаркоманить: Сейчас есть:
Функция ПоказатьГнома(цвет){
Рожаем Гнома с колпаком нужного цвета.
Показываем гнома;
}
Вы спрашиваете, что сделать чтобы у меня гном не рожался, а использовался старый. Все просто!
Рожаем гнома Васю;
Функция ПоказатьГнома(цвет){
Берем гнома Васю;
Надеваем на него колпак с нужным цветом;
}
Вот только если где-то в коде после того как показать гнома, например сталкивают его в кислоту, то придется этот кусок переписывать, иначе колпак на несуществующем Васе не поменяешь. |
Цитата:
|
Цитата:
if(!win){
поэтому новое окошко создается каждый раз.либо сделайте переменную глобальной (плохая практика), либо храните ссылку на окно в свойстве подходящего по смыслу объекта.
function showWindow(w,h,title,m,s,close){
if(!App.win){
App.win = new Ext.Window({
width: w,
height: h,
title: title,
html:m,
autoScroll: true,
layout:'fit',
bodyStyle:{'background-color': '#e4e4e4','background': s}
})
}}
|
с этим разобрался. спасибо.
|
| Часовой пояс GMT +3, время: 14:41. |