#ionic-framework
#ionic-framework
Вопрос:
ионная вкладка перейти на дочернюю страницу другой вкладки не может вернуться на другую вкладку
Проблема: есть кнопка, которая может перейти в состояние «tab.settings.sub» на странице состояния «tab.home», когда я впервые вхожу в состояние «tab.home», затем нажимаю кнопку, чтобы войти в состояние «tab.setting.sub», но я не могу вернутьсяуказать «tab.setting».
<ion-nav-bar>
<ion-nav-back-button></ion-nav-back-button>
</ion-nav-bar>
<ion-nav-view></ion-nav-view>
<script id="templates/tabs.html" type="text/ng-template">
<ion-tabs>
<ion-tab title="home" ui-sref="tabs.home">
<ion-nav-view name="home-tab"></ion-nav-view>
</ion-tab>
<ion-tab title="settings" ui-sref="tabs.settings.index">
<ion-nav-view name="settings-tab"></ion-nav-view>
</ion-tab>
</ion-tabs>
</script>
<script id="templates/home.html" type="text/ng-template">
<ion-view view-title="home">
<ion-content>
<button class="button" ng-click="home.goSub()">settings/sub</ion-item>
</ion-content>
</ion-view>
</script>
<script id="templates/settings.html" type="text/ng-template">
<ion-view view-title="settings">
<ion-content>
<ion-item ui-sref="tabs.settings.sub">settings/sub</ion-item>
</ion-content>
</ion-view>
</script>
<script id="templates/sub.html" type="text/ng-template">
<ion-view view-title="settings/sub">
<ion-content>
welcome to settings/sub
</ion-content>
</ion-view>
</script>
Проблема в http://codepen.io/piwinux/pen/BNYXKd
Спасибо за помощь.
Ответ №1:
Хорошо, проблема здесь в том, что вы не объявили свою «домашнюю» вкладку абстрактной или ее дочерние состояния в вашем MyConfig.js
. Чтобы реализовать навигацию на вашей вкладке «Главная», вы должны использовать тот же шаблон, что и для вкладки «Настройки»:
-
вкладки.начальное состояние с
abstract: true
помощью иtemplate: '<ion-nav-view></ion-nav-view>'
для навигации по вкладке. -
tab.home.index начальный маршрут вашей вкладки «Home» с
templateUrl: 'templates/home.html'
помощью . -
tab.home.nextRoute для следующего маршрута на вкладке «Главная», используя
$state.go ('tabs.home.sub');
вместо$state.go ('tabs.settings.sub');
вашегоHomeCtrl
, чтобы получить к нему доступ..state ('tabs', {
abstract: true,
url: '/tab',
templateUrl: 'templates/tabs.html'
})
.state ('tabs.home', {
abstract: true,
url: '/home',
views: {
'home-tab': {
template: '<ion-nav-view></ion-nav-view>',
controller: 'HomeCtrl as home'
}
}
}).state ('tabs.home.index', {
url: '',
templateUrl: 'templates/home.html'
})
.state ('tabs.home.sub', {
url: '/sub',
templateUrl: 'templates/sub.html'
})