Ionic Framework中的嵌套选项卡栏

时间:2014-09-23 11:18:36

标签: angularjs ionic-framework

Ionic框架中是否有一种方法可以使用这样的嵌套标签栏:

enter image description here

我在Codepen中尝试过,但它并没有真正起作用:

Example on Codepen

.state('tabs.about', {
    url: "/about",
    abstract: true,
    views: {
        'about-tab': {
            templateUrl: "templates/about.html"
        }
    }
})

.state('tabs.about.page1', {
    url: "/page1",
    views: {
        'about-page1': {
            templateUrl: "templates/about-page1.html"
        }
    }
})

.state('tabs.about.page2', {
    url: "/page2",
    views: {
        'about-page2': {
            templateUrl: "templates/about-page2.html"
        }
    }
});

是否有人知道这样做的正确方法?

由于

1 个答案:

答案 0 :(得分:6)

我尝试在codePen上举例,但我没有像我预期的那样工作。但我在本地项目中解决了你的问题。确保您拥有离子的最新版本,或者您可以使用以下内容进行更新:

npm install -g ionic

你快到了。你需要在这些视图中设置一个摘要:

angular.module('ionicApp', ['ionic'])

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

$stateProvider

.state('tabs', {
    url: "/tab",
    abstract: true,
    templateUrl: "templates/tabs.html"
})

.state('tabs.home', {
    url: "/home",
    views: {
        'home-tab': {
            templateUrl: "templates/home.html",
        }
    }
})

.state('tabs.about', {
    url: "/about",        
    views: {
        'about-tab': {
            templateUrl: "templates/about.html",
            abstract: true
        }
    }
})

.state('tabs.about.page1', {
    url: "/page1",
    views: {
        'about-page1': {
            templateUrl: "templates/about-page1.html"
        }
    }
})

.state('tabs.about.page2', {
    url: "/page2",
    views: {
        'about-page2': {
            templateUrl: "templates/about-page2.html"
        }
    }
});

$urlRouterProvider.otherwise("/tab/home");

}); 

使用您评论过的代码:

<ion-tabs class="tabs-striped tabs-top tabs-background-stable">

             <ion-tab title="Page 1" ui-sref="tabs.about.page1">
               <ion-nav-view name="about-page1"></ion-nav-view>
             </ion-tab>

             <ion-tab title="Page 2" ui-sref="tabs.about.page2">
                 <ion-nav-view name="about-page2"></ion-nav-view>
             </ion-tab>

         </ion-tabs>

我评论了之前的标签代码,特别是:

<!--<div class="tabs-striped tabs-top tabs-background-stable">
         <div class="tabs">
           <a class="tab-item" ui-sref="tabs.about.page1">
             Page 1
           </a>
           <a class="tab-item" ui-sref="tabs.about.page2">
             Page 2
           </a>
         </div>
       </div>-->

HTML代码的其余部分是相同的

我的离子版本是:1.3.19

我希望它可以帮到你