Ionic框架中是否有一种方法可以使用这样的嵌套标签栏:
我在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"
}
}
});
是否有人知道这样做的正确方法?
由于
答案 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
我希望它可以帮到你