2014-09-23 20 views
8

Có cách nào trong khuôn khổ Ionic có một thanh tab lồng nhau như thế này:thanh tab lồng nhau trong Ionic Khung

enter image description here

Tôi đã thử nó trong Codepen, nhưng nó không thực sự làm việc:

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

có những người biết cách thích hợp để làm điều này?

Cảm ơn

Trả lời

6

tôi cố gắng dụ tại codePen nhưng tôi không làm việc như tôi mong đợi. Nhưng tôi đã giải quyết được vấn đề của bạn trong một dự án địa phương. Hãy chắc chắn rằng bạn có phiên bản mới nhất của ion hoặc bạn có thể cập nhật phiên bản đó với:

npm install -g ionic 

Bạn sắp hoàn tất. Bạn cần phải thiết lập một trừu tượng thành các quan điểm như thế này:

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

}); 

Và bằng cách sử dụng mã mà bạn đã nhận xét:

<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> 

tôi nhận xét mã tab trước đó, cụ thể này:

<!--<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>--> 

Phần còn lại của mã HTML giống nhau

Phiên bản ionic của tôi là: 1.3.19

Tôi hy vọng nó sẽ giúp bạn

+0

Cảm ơn bạn thân mến. Lưu ngày của tôi! Tôi cũng đang theo phương pháp OP. Tôi có một vấn đề. Làm thế nào tôi có thể ngăn chặn quay trở lại khi truy cập URL trực tiếp, nói: http: // localhost: 8100/#/tabs/7/live/messages? tôi có thể hỏi riêng được không? – Ravimallya

+0

Tôi không chắc chắn sẽ hiểu câu hỏi của bạn. Nhưng bạn có thể ghi đè lên hành vi của nút quay lại. https://ionicframework.com/docs/v1/api/directive/ionNavBackButton/ Bạn thêm đánh dấu vào chế độ xem của mình và thêm chức năng onClick vào bộ điều khiển của bạn. Điều đó sẽ luôn kích hoạt chức năng đó thay vì hành vi nút quay lại bình thường. Hy vọng điều đó sẽ hữu ích! – LTroya

Các vấn đề liên quan