ионная вкладка перейти на дочернюю страницу другой вкладки не может вернуться на другую вкладку

#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'
    })