为离子中的不同选项卡定义不同的抽象布局

时间:2015-08-07 21:48:30

标签: ionic

我可以使用abstract的2个状态:true,即不同选项卡的基本布局?

Forexample, 对于制表1,标签2和标签-3,I必须C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110为抽象:真状态提供商和用于选项卡-4,I必须menu.html抽象:在状态provder所以真随后的州继承了它。

这样的事情:

tabs.html

tabs.html看起来像这样:

.config(function($stateProvider, $urlRouterProvider) {

      // Ionic uses AngularUI Router which uses the concept of states
      // Learn more here: https://github.com/angular-ui/ui-router
      // Set up the various states which the app can be in.
      // Each state's controller can be found in controllers.js
      $stateProvider

      // setup an abstract state for the tabs directive
        .state('tab', {
        url: '/tab',
        abstract: true,
        templateUrl: 'templates/tabs.html'
      })

      // Each tab has its own nav history stack:

      .state('tab.dash', {
        url: '/dash',
        views: {
          'tab-dash': {
            templateUrl: 'templates/tab-dash.html',
            controller: 'DashCtrl'
          }
        }
      })

      .state('tab.chats', {
          url: '/chats',
          views: {
            'tab-chats': {
              templateUrl: 'templates/tab-chats.html',
              controller: 'ChatsCtrl'
            }
          }
        })
        .state('tab.chat-detail', {
          url: '/chats/:chatId',
          views: {
            'tab-chats': {
              templateUrl: 'templates/chat-detail.html',
              controller: 'ChatDetailCtrl'
            }
          }
        })

      .state('tab.account', {
        url: '/account',
        views: {
          'tab-account': {
            templateUrl: 'templates/tab-account.html',
            controller: 'AccountCtrl'
          }
        }
      })
      $stateProvider
        .state('app', {
          abstract: true,
          templateUrl: "templates/menu.html"
        })

      .state('app.events', {
        url: "/events",
        views: {
          'menuContent': {
            templateUrl: "templates/events.html",
            controller: 'EventsCtrl'

          }
        }
      })

menu.html:

<!--
    Create tabs with an icon and label, using the tabs-positive style.
    Each tab's child <ion-nav-view> directive will have its own
    navigation history that also transitions its views in and out.
    -->
<ion-tabs class="tabs-icon-top tabs-color-active-positive">

  <!-- Dashboard Tab -->
  <ion-tab title="Status" icon-off="ion-ios-pulse" icon-on="ion-ios-pulse-strong" href="#/tab/dash">
    <ion-nav-view name="tab-dash"></ion-nav-view>
  </ion-tab>

  <!-- Chats Tab -->
  <ion-tab title="Chats" icon-off="ion-ios-chatboxes-outline" icon-on="ion-ios-chatboxes" href="#/tab/chats">
    <ion-nav-view name="tab-chats"></ion-nav-view>
  </ion-tab>

  <!-- Account Tab -->
  <ion-tab title="Account" icon-off="ion-ios-gear-outline" icon-on="ion-ios-gear" href="#/tab/account">
    <ion-nav-view name="tab-account"></ion-nav-view>
  </ion-tab>

  <!--Practice Tab -->
  <ion-tab title="Events" icon-off="ion-ios-arrow-forward " icon-on="ion-ios-arrow-forward-utline" href="#/tab/events">
    <ion-nav-view name="menuContent"></ion-nav-view>
  </ion-tab>


</ion-tabs>

虽然不起作用。是否可以这样做?如果没有替代方案?

1 个答案:

答案 0 :(得分:1)

是的,您可以添加多个抽象状态。

这是Angular状态的Documentation。根据文件:

  

抽象状态可以具有子状态但不能自行激活。一个&#39;摘要&#39;国家只是一个无法转变的国家。当其中一个后代被激活时,它会被隐式激活。