2016-10-26 7 views
1

Я использую Ionic1 и нуждаюсь в помощи при выяснении того, как работает активный механизм вкладок по умолчанию. В настоящее время есть 3 вкладки, а активная вкладка по умолчанию - правая. Хотелось бы, чтобы это был левый.По умолчанию Активная вкладка в Ionic

Я следил за этим примером - Ionic : Select Tab - CodePen - и активная вкладка по умолчанию здесь - левая (это то, что я хочу), поэтому я не понимаю, почему в моем приложении по умолчанию правильная вкладка, а в примере левая вкладка.

Может кто-то пролить свет на эту тему?

Мой код

article.route.js:

.state('app.article', { 
     abstract: true, 
     templateUrl: 'app/article/articleTabs.html', 
     }) 


     .state('app.article.details', { 
     url: '/home/:articleID', 
      views: { 
      'first-tab': { 
       templateUrl: 'app/article/article.html', 
       controller: 'ArticleController', 
       controllerAs: 'vm', 
      }, 
      'second-tab': { 
       templateUrl: 'app/article/article.html', 
       controller: 'ArticleController', 
       controllerAs: 'vm', 
      }, 
      'third-tab': { 
       templateUrl: 'app/article/article.html', 
       controller: 'ArticleController', 
       controllerAs: 'vm', 
      } 
      } 
     }); 

articleTabs.html:

<ion-tabs> 
    <ion-tab title="First" ui-sref="app.article.details"> 
    <ion-nav-view name="first-tab"></ion-nav-view> 
    </ion-tab> 

    <ion-tab title="Second" ui-sref="app.article.details"> 
    <ion-nav-view name="second-tab"></ion-nav-view> 
    </ion-tab> 

    <ion-tab title="Third" ui-sref="app.article.details"> 
    <ion-nav-view name="third-tab"></ion-nav-view> 
    </ion-tab> 
</ion-tabs> 

article.html:

<ion-view> 
    <ion-nav-buttons side="secondary"> 
    <button class="button button-large ion-ios-location" ng-click="vm.doSomething()"> 
    </button> 
    </ion-nav-buttons> 
    <ion-content has-bouncing="false" overflow-scroll="true"> 
    ........... 
    </div> 
    </ion-content> 
</ion-view> 

Спасибо.

ответ

1

Я решил его, давая каждой вкладке свое состояние с конкретным URL и просмотр:

.state('app.article.details', { 
     url: '/home/:articleID/first', 
      views: { 
      'first-tab': { 
       templateUrl: 'app/article/article.html', 
       controller: 'ArticleController', 
       controllerAs: 'vm', 
      } 
      } 
     }), 
.state('app.article.details', { 
     url: '/home/:articleID/second', 
      views: { 
      'second-tab': { 
       templateUrl: 'app/article/article.html', 
       controller: 'ArticleController', 
       controllerAs: 'vm', 
      } 
      } 
     }), 
.state('app.article.details', { 
     url: '/home/:articleID/third', 
      views: { 
      'third-tab': { 
       templateUrl: 'app/article/article.html', 
       controller: 'ArticleController', 
       controllerAs: 'vm', 
      } 
      } 
     }); 

Не знаете, почему и когда необходимо использовать несколько видов.

0

Мне кажется, что копейная ссылка, которую вы предоставили в сообщении, по умолчанию была первой вкладкой и переходила к третьей вкладке после этого.

Это неожиданное поведение вызвано следующим кодом. Поэтому, если вы удалите этот код, ваша вкладка должна быть оставлена ​​по умолчанию слева.

$timeout(function() { 
    $ionicTabsDelegate.select(2, false);  
    },400); 
+0

Да, это работает отлично в примере codepen. Но в моем приложении он начинается с третьей вкладки по умолчанию. Я пытаюсь понять, что контролирует порядок. Я не могу иметь такое же поведение, как в примере codepen. – badigard

1

подмигнули просто, изменить эту строку:

$urlRouterProvider.otherwise('//the default tab you needed');

в конце app.js

+0

app.js уже содержит '$ urlRouterProvider.otherwise ('/app/home ')', что приводит к этому состоянию: .state ('app.home', { url: '/ home', templateUrl: 'app /home/home.html ', контроллер:' HomeController ', controllerAs:' vm ', }); Состояние «app.article» является внутренним состоянием в моем приложении (надеюсь, что я ясно дал понять) – badigard

Смежные вопросы