У меня есть панель Ext Js, которую я добавляю к моей основной вкладке TabPanel. Панель, которую я добавляю, содержит FormPanel как один из его элементов, а внутри FormPanel у меня есть поле Name. Я хочу изменить имя вкладки на основе имени в поле формы.Невозможно вызвать getValues () на Ext Js FormPanel при инициализации контейнера Panel
Проблема заключается в том, что если я называю FormPanel-х getForm().getValues()
внутри InitComponent панели, я получаю следующую яваскрипта ошибку:
Uncaught TypeError: Cannot read property 'dom' of undefined
Если бы я сделать это вне InitComponent (например, на нажатие кнопки) все работает хорошо. После некоторого тестирования я думаю, что проблема в том, что FormPanel пока еще не отображается (и, следовательно, dom не существует), getValues()
терпит неудачу. Однако я не могу понять, как получить значения FormPanel из панели при загрузке.
Я пытался прослушать события. Я пробовал:
this.detailForm.on('afterrender', function() { alert('test'); });
но делать это показало, что AfterRender
называется до формы фактически оказанной (это не видно на экране). Изменение предупреждения для моего настраиваемого обработчика функций приводит к предыдущему исключению dom. Я попытался использовать события activate
и enable
вместо afterrender
, но даже если API говорит, что FormPanel запускает эти события, предупреждение ('test') никогда не вызывается.
Я не могу найти способ, чтобы моя панель получала внутренние значения FormPanel при загрузке моей панели. У кого-нибудь есть идеи?
Оба, похоже, работают, но я отмечаю это как ответ, потому что я думаю, что это лучше, чем полагаться на событие afterlayout – KallDrexx 2010-12-10 05:58:25