Дочерний элемент ionNavView
Контейнер для контента вида и любой информации, относящейся к панели навигации и строке заголовка. Когда вид входит и выходит из своего родительского ionNavView
, вид также генерирует информацию, такую как заголовок, или то, должна ли отображаться кнопка возврата или нет, должна ли демонстрироваться соответствующая директива ionNavBar
или нет, какой из переходов должен сопровождаться анимацией, и в каком направлении анимация должна осуществляться.
Виды помещаются в кэш для улучшения производительности. Когда из вида уже совершен переход, его элемент остается в структуре DOM, и область видимости отсоединяется от цикла $watch
. При перемещении в вид, который уже находится в кэше, его область видимости подключается заново, и существующий элемент, который был
оставлен в структуре DOM, снова становится активным. Это можно отключить, или же максимальное число видов, находящихся в кэше, можно изменить в $ionicConfigProvider
, в конфигурации вида $state
, или
с помощью изменения значения атрибута самого вида (см. ниже).
Применение
Ниже дан пример того, как страница будет загружена с ionNavBar
, где в качестве заголовка содержится “My Page”.
<ion-nav-bar></ion-nav-bar>
<ion-nav-view>
<ion-view view-title="My Page">
<ion-content>
Hello!
</ion-content>
</ion-view>
</ion-nav-view>
Жизненный цикл вида и события
Виды можно кэшировать, а это означает, что контроллеры нормально загружаются только один раз. Это может повлиять на логику вашего контроллера. Чтобы знать, когда вид стал доступен или уже нет, были добавлены события, которые эмитируются из области видимости вида. Эти события также содержат данные о виде представления, такие как заголовок и информации о том, должна ли отображаться кнопка возврата. Также содержатся данные перехода, такие как тип перехода и направление, которое или будет, или уже было использовано.
|
Вид загружен. Это событие связано только с одним видом, который создается и добавляется в DOM. Если вид уходит, но он помещен в кэш, то это событие не запустится снова при последующем просмотре. Загруженное событие - это хорошее место для размещения кода установки для вида; однако это не то событие, которое рекомендуется слушать, когда вид становится активным. |
|
Вид полностью вошел и сейчас является активным. Это событие запустится, не важно, загружено ли оно впервые, или вид берется из кэша. |
|
Вид закончил выход и больше не является активным. Это событие запустится, не важно, в кэше ли оно или разрушено. |
|
Вид готов к входу и готов стать активным. |
|
Вид готов к выходу и больше не будет активным. |
|
Вид полностью вошел и сейчас является активным. |
|
Вид закончил выход и больше не является активным. |
|
Контроллер вида уничтожен и его элемент удален из DOM. |
Кэширование
Кэширование можно отключать и включать многими способами. По умолчанию Ionic будет кэшировать максимум 10 видов. Вы можете принять необязательное решение отключить кэширование либо для отдельного вида, либо в глобальной конфигурации. Дополнительную информацию смотрите в главе Caching (кэширование) раздел ionNavView
API
Атрибут |
Тип |
Описание |
view-title (необязательный) |
|
Заголовок (title) text-only, который должен отображаться в родительском |
cache-view (необязательный) |
|
Определяет, позволено ли этому виду быть помещенным в кэш или нет. Для получения более подробной информации см. раздел Caching в |
can-swipe-back (необязательный) |
|
Если этому виду должно быть позволено использовать такой жест, как свайп, чтобы делать возврат. Это не активирует свайп как действие для возврата назад, если такой жест не доступен на данной платформе, или же не существует предыдущего вида представления. По умолчанию используется |
hide-back-button (необязательный) |
|
Определяет, возможно ли по умолчанию скрывать кнопку возврата на родительском |
hide-nav-bar (необязательный) |
|
Определяет, скрывать или нет по умолчанию родительский |