2013-03-21 3 views
0

У меня есть приложение, которое запускает представление по xtype при запуске, чтобы пользователь мог зарегистрироваться. В этом представлении есть несколько полей выбора, и все работает так, как ожидалось. Использование также имеет возможность пропустить это представление и получить доступ к нему позже. Когда пользователь обратится к этому представлению позднее, у меня возникла проблема, когда данные не добавляются к правильным элементам. Значения устанавливаются, но запуск Ext.ComponentQuery.query('[itemId=item_name]') возвращает 2 элемента. Так или иначе элементы этого представления дублируются.Дублировать элементы DOM путем включения вида по xtype в двух разных представлениях

Я также попытался установить autoDestroy: true на конфигурацию для этого вида, но это не имеет никакого эффекта.

Я также попытался вручную уничтожить представление, используя метод destroy() на мероприятии deactivate(). Когда я это делаю, поведение становится странным, и выбор элемента из другого нажатого вида и возврат к экрану профиля приводит к тому, что навигационное представление прерывается, как будто этого вида нет. Загорается заголовок навигационной панели, и кнопка назад отображается неправильно.

Почему элементы вида дублируются? Как я могу это предотвратить.

+0

Как выглядит ваш код? – cclerville

ответ

0

После дальнейшего расследования я обнаружил, что вид не был автоматически уничтожен из DOM, как и другие виды, и, таким образом, посмотрел дальше. Затем я понял, что на самом деле перешел от просмотра, используя Ext.Viewport.setActiveItem(Ext.create('MyApp.view.Main'));

Добавление item.destroy() звонок по deactivate Событие сделало трюк. Хотя, после Ext.Viewport.setActiveItem, Ext.Viewport.remove() тоже сделал бы трюк!

Надеюсь, это поможет кому-то!