#ionic-framework #nav #ionic-view
#ionic-framework #навигационная система #ionic-view #навигация
Вопрос:
Пример кода для директивы ion-nav-view фактически не показывает ее использование. Поэтому я не уверен, как ее использовать. Вот ссылка на документацию:
http://ionicframework.com/docs/api/directive/ionNavView/
в заголовке USAGE говорится следующее:
при запуске приложения $stateProvider просмотрит URL-адрес, проверит, соответствует ли он состоянию индекса, а затем попытается загрузить home.html в .
Страницы загружаются по указанным URL-адресам. Один из простых способов создания шаблонов в Angular — поместить их непосредственно в ваш HTML-файл и использовать синтаксис. Итак, вот один из способов поместить home.html в наше приложение:
<script id="home" type="text/ng-template">
<!-- The title of the ion-view will be shown on the navbar -->
<ion-view view-title="Home">
<ion-content ng-controller="HomeCtrl">
<!-- The content of the page -->
<a href="#/music">Go to music page!</a>
</ion-content>
</ion-view>
</script>
Это полезно сделать, потому что шаблон будет кэшироваться для очень быстрой
загрузки, вместо того, чтобы извлекать их из сети.
Должен ли я вложить все это в директиву ion-nav-view? Еще одна причина моего замешательства заключается в том, что в одном из шаблонов ionic, предоставляемых фреймворком, я видел, как ion-nav-view открывался и закрывался, и между ними ничего не было (приведенный ниже код скопирован и вставлен непосредственно из одного из шаблонов Ionic) :
<body ng-app="myApp">
<!--
The nav bar that will be updated as we navigate between views.
-->
<ion-nav-bar class="bar-stable">
<ion-nav-back-button>
</ion-nav-back-button>
</ion-nav-bar>
<!--
The views will be rendered in the <ion-nav-view> directive below
Templates are in the /templates folder (but you could also
have templates inline in this html file if you'd like).
-->
<ion-nav-view></ion-nav-view>
</body>
Ответ №1:
Это <ion-nav-view>
ведет себя как заполнитель. Туда попадают другие ваши HTML-файлы, которые вы создаете в папке templates. Так, например, у вас есть «employees.html «в вашей папке «Шаблоны». Итак, разметка «employees.html » будет выглядеть примерно так:
<ion-view view-title="Employees">
<ion-content>
<ion-list>
<ion-item ng-repeat="item in items">
Hello, {{item}}
</ion-item>
</ion-list>
</ion-content>
</ion-view>
приведенный выше полный html, который будет находиться в «employees.html «. По сути, это HTML-код, который будет помещен внутри <ion-nav-view>
тегов.
Надеюсь, это поможет.
Комментарии:
1. Итак, я использую ion-nav-view, как показано в коде шаблона? То есть я помещаю туда пустую директиву и позволяю angular делать все остальное?
2. Вот именно. Это происходит через конфигурацию маршрутизатора. смотрите, у вас есть что-то вроде этого ‘<ion-nav-view name=»menuContent»> </ion-nav-view>’, а затем в вашем app.js в конфигурации вашего состояния вы определяете его следующим образом .state(‘app.homepage’, { cache: false, url: ‘/домашняя страница’, views: { ‘menuContent’: { templateUrl: ‘templates/homepage.html ‘, контроллер: ‘HomepageCtrl’ } } })
3. Понял. Спасибо