У меня есть приложение Alloy, структурированное с одним окном, разделенным на два вида: вид в боковой панели слева и основной вид справа. Каждый раз, когда пользователь нажимает на другой элемент меню на боковой панели, я удаляю всех детей, прикрепленных к основному виду, и загружаю вид/контроллер, связанные с этим элементом меню, и прикрепляю его к основному виду. Мой вопрос: достаточно ли этого? Если в удаленном представлении присутствуют прослушиватели событий, прикрепленные к элементам внутри него, они тоже очищаются или нет? Должен ли я хранить ссылку на каждый контроллер, который я создал, и вызвать контроллер.destroy() и controller.off(), прежде чем загружать новый просмотр/контроллер или не нужно?Титан: правильно очистите контроллер, связанный с видом не окна.
Я спрашиваю, потому что с представлениями без окна невозможно подключить функцию очистки к событию «onclose», потому что элементы UI.View не могут быть «закрыты» (только окна).
Итак, каков правильный способ справиться с этой ситуацией в титане?
Но если я только присоединяю слушателей событий к внутренним элементам представления, которые я удаляю, они выживут или нет? Спасибо за вашу помощь. – revy
Они не выживут, если не привяжутся к коллекции или модели. Вы можете протестировать его с помощью своих кодов следующим образом: добавить Ti.App.info («несколько слов») в своем слушателе событий, закрыть окно и снова открыть его, увидеть, сколько «некоторых слов» показывает, если «несколько слов» показывают дважды , это означает, что прослушиватель событий в закрытом вами представлении все еще существует. – jack
Хорошо, теперь я получил его, спасибо! – revy