2014-09-23 132 views
8

是否有离子框架的方式,以有这样一个嵌套的标签栏:嵌套的标签栏

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" 
     } 
    } 
}); 

有没有人谁知道正确的方式来做到这一点?

感谢

回答

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

我希望能帮到你

+0

谢谢哥们。拯救了我的一天!我也在遵循OPs方法。我有一个问题。如何防止在直接访问URL时回退:http:// localhost:8100 /#/ tabs/7/live/messages?我可以单独问一下吗? – Ravimallya 2018-01-26 05:37:12

+0

我不确定要理解你的问题。但是你可以覆盖后退按钮的行为。 https://ionicframework.com/docs/v1/api/directive/ionNavBackButton/ 您在视图中添加标记并将onClick函数添加到您的控制器。这将始终触发该功能,而不是正常的后退按钮行为。 希望它有帮助! – LTroya 2018-01-27 17:16:54