PhoneGap中文网

 找回密码
 立即注册
查看: 18792|回复: 4

请教ion-tabs嵌套的问题

[复制链接]

2

主题

6

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2016-2-23 10:54:21 | 显示全部楼层 |阅读模式
刚接触ionic,碰到一个问题,想请教下各位。
1.png 2.png 3.png
如上面图片所示,我需要的功能是:
1、下面一排tabs,点击tab1后在上方空白区域显示页1的内容;
2、点击tab2后在上方空白区域显示一排tabs,这排tabs要在顶部,点击tab2后默认选中funcTab1,显示功能页1的内容,此时下面的tabs也要在页面中显示;
3、点击funcTab2,在中间空白区域显示功能页2的内容,此时下面的tabs要同时在页面中显示。

我的代码:
index.html
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8">
  5.     <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
  6.     <title></title>

  7.     <link href="lib/ionic/css/ionic.css" rel="stylesheet" />
  8.     <link href="css/style.css" rel="stylesheet" />
  9.     <link href="css/controlStyle.css" rel="stylesheet" />

  10.     <script src="lib/ionic/js/ionic.bundle.min.js"></script>
  11.     <script src="lib/jquery-1.8.2.js"></script>
  12.     <script src="lib/common.js"></script>
  13.     <script src="lib/GridTable.js"></script>

  14.     <!-- cordova script (this will be a 404 during development) -->
  15.     <script src="cordova.js"></script>

  16.     <script src="js/app.js"></script>
  17.     <script src="js/controllers.js"></script>
  18.     <script src="js/services.js"></script>
  19.     <script src="js/utils.js"></script>
  20. </head>
  21. <body ng-app="starter">
  22.     <ion-nav-view></ion-nav-view>
  23. </body>
  24. </html>
复制代码
tabs.html
  1. <ion-tabs class="tabs-icon-top tabs-positive">
  2.     <ion-tab title="首页" icon-off="ion-ios-home-outline" icon-on="ion-ios-home" class="fontsize" href="#/tab/home" >
  3.         <ion-nav-view name="tab-home"></ion-nav-view>
  4.     </ion-tab>
  5.     <ion-tab title="OA" icon-off="ion-ios-monitor-outline" icon-on="ion-ios-monitor" href="#/tab/oa">
  6.         <ion-nav-view name="tab-oa"></ion-nav-view>
  7.     </ion-tab>
  8.     <ion-tab title="查房" icon-off="ion-ios-pulse" icon-on="ion-ios-pulse-strong" href="#/tab/rounds">
  9.         <ion-nav-view name="tab-rounds"></ion-nav-view>
  10.     </ion-tab>
  11.     <ion-tab title="搜索" icon-off="ion-ios-search" icon-on="ion-ios-search-strong" href="#/tab/search">
  12.         <ion-nav-view name="tab-search"></ion-nav-view>
  13.     </ion-tab>
  14.     <ion-tab title="我" icon-off="ion-ios-person-outline" icon-on="ion-ios-person" href="#/tab/me">
  15.         <ion-nav-view name="tab-me"></ion-nav-view>
  16.     </ion-tab>
  17. </ion-tabs>
复制代码
funcTabs.html
  1. <ion-view>
  2.     <ion-tabs class="tabs-icon-left tabs-positive tabs-top">
  3.         <ion-tab title="诊断" icon-off="ion-ios-glasses-outline" icon-on="ion-ios-glasses" href="#/funcTab/diagnosis">
  4.             <ion-nav-view name="funcTab-diagnosis"></ion-nav-view>
  5.         </ion-tab>
  6.         <ion-tab title="医嘱" icon-off="ion-ios-book-outline" icon-on="ion-ios-book" href="#/funcTab/order">
  7.             <ion-nav-view name="funcTab-order"></ion-nav-view>
  8.         </ion-tab>
  9.         <ion-tab title="检查" icon-off="ion-ios-medkit-outline" icon-on="ion-ios-medkit" href="#/funcTab/check">
  10.             <ion-nav-view name="funcTab-check"></ion-nav-view>
  11.         </ion-tab>
  12.         <ion-tab title="检验" icon-off="ion-ios-flask-outline" icon-on="ion-ios-flask" href="#/funcTab/test">
  13.             <ion-nav-view name="funcTab-test"></ion-nav-view>
  14.         </ion-tab>
  15.         <ion-tab title="用血" icon-off="ion-ios-heart-outline" icon-on="ion-ios-heart" href="#/funcTab/blood">
  16.             <ion-nav-view name="funcTab-blood"></ion-nav-view>
  17.         </ion-tab>
  18.         <ion-tab title="文书" icon-off="ion-ios-paper-outline" icon-on="ion-ios-paper" href="#/funcTab/document">
  19.             <ion-nav-view name="funcTab-document"></ion-nav-view>
  20.         </ion-tab>
  21.     </ion-tabs>
复制代码
app.js
  1. angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])

  2. .run(function ($ionicPlatform) {
  3.     $ionicPlatform.ready(function () {
  4.         if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
  5.             cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
  6.         }
  7.         if (window.StatusBar) {
  8.             StatusBar.styleLightContent();
  9.         }
  10.     });
  11. })

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

  13.     $stateProvider
  14.          .state('login', {
  15.              url: "/login",
  16.              controller: "LoginCtrl",
  17.              templateUrl: "templates/login.html"
  18.          })

  19.       .state('tab', {
  20.           url: '/tab',
  21.           abstract: true,
  22.           templateUrl: 'templates/tabs.html'
  23.       })

  24.     .state('tab.home', {
  25.         url: '/home',
  26.         views: {
  27.             'tab-home': {
  28.                 templateUrl: 'templates/home.html',
  29.                 controller: 'HomeCtrl'
  30.             }
  31.         }
  32.     })

  33.     .state('tab.rounds', {
  34.         url: '/rounds',
  35.         views: {
  36.             'tab-rounds': {
  37.                 templateUrl: 'templates/rounds/funcTabs.html',
  38.                 controller: 'RoundsCtrl'
  39.             }
  40.         }
  41.     })

  42.     .state('tab.search', {
  43.         url: '/search',
  44.         views: {
  45.             'tab-search': {
  46.                 templateUrl: 'templates/search.html',
  47.                 controller: 'SearchCtrl'
  48.             }
  49.         }
  50.     })

  51.     .state('tab.me', {
  52.         url: '/me',
  53.         views: {
  54.             'tab-me': {
  55.                 templateUrl: 'templates/me/docInfo.html',
  56.                 controller: 'MeCtrl'
  57.             }
  58.         }
  59.     })

  60.     .state('funcTab', {
  61.         url: '/funcTab',
  62.         abstract: true,
  63.         templateUrl: 'templates/rounds/funcTabs.html'
  64.     })

  65.     .state('funcTab.diagnosis', {
  66.         url: '/diagnosis',
  67.         views: {
  68.             'funcTab-diagnosis': {
  69.                 templateUrl: 'templates/rounds/tabs/diagnosis.html',
  70.                 controller: 'DiagnosisCtrl'
  71.             }
  72.         }
  73.     })

  74.     .state('funcTab.order', {
  75.         url: '/order',
  76.         views: {
  77.             'funcTab-order': {
  78.                 templateUrl: 'templates/rounds/tabs/order.html',
  79.                 controller: 'OrderCtrl'
  80.             }
  81.         }
  82.     })

  83.     .state('funcTab.check', {
  84.         url: '/check',
  85.         views: {
  86.             'funcTab-check': {
  87.                 templateUrl: 'templates/rounds/tabs/check.html',
  88.                 controller: 'CheckCtrl'
  89.             }
  90.         }
  91.     })

  92.     .state('funcTab.test', {
  93.         url: '/test',
  94.         views: {
  95.             'funcTab-test': {
  96.                 templateUrl: 'templates/rounds/tabs/test.html',
  97.                 controller: 'TestCtrl'
  98.             }
  99.         }
  100.     })

  101.     .state('funcTab.blood', {
  102.         url: '/blood',
  103.         views: {
  104.             'funcTab-blood': {
  105.                 templateUrl: 'templates/rounds/tabs/blood.html',
  106.                 controller: 'BloodCtrl'
  107.             }
  108.         }
  109.     })

  110.     .state('funcTab.document', {
  111.         url: '/document',
  112.         views: {
  113.             'funcTab-document': {
  114.                 templateUrl: 'templates/rounds/tabs/document.html',
  115.                 controller: 'DocumentCtrl'
  116.             }
  117.         }
  118.     });

  119.     $urlRouterProvider.otherwise('/tab/home');

  120. });
复制代码


我现在做到了点击tab2显示了上面的一排funcTabs并显示funcTab1的内容页,但是这个时候下面的tabs没有了。
不知道是ionic不支持还是我路由写错了(修改过几次路由,也没能实现)或者是别的什么原因。
望大神们不吝赐教,谢谢。

另外:我把index.html页面的<ion-nav-bar>删掉了,再给funcTabs.html页面的<ion-tabs>加上tabs-top样式后页面上部还是留下了一个ion-nav-bar高度的空白区域,虽然我现在通过自己设定样式解决了这个问题,但是不知道ionic原生能不能解决这个问题,比如通过设置或者添加样式什么的。
回复

使用道具 举报

2

主题

6

帖子

42

积分

新手上路

Rank: 1

积分
42
 楼主| 发表于 2016-2-23 10:58:04 | 显示全部楼层
funcTabs.html的代码编辑错了,还有下面几行代码要加上去:
<ion-nav-view></ion-nav-view>
</ion-view>
完整代码是这样的:
  1. <ion-view>
  2.     <ion-tabs class="tabs-icon-left tabs-positive tabs-top">
  3.         <ion-tab title="诊断" icon-off="ion-ios-glasses-outline" icon-on="ion-ios-glasses" href="#/funcTab/diagnosis">
  4.             <ion-nav-view name="funcTab-diagnosis"></ion-nav-view>
  5.         </ion-tab>
  6.         <ion-tab title="医嘱" icon-off="ion-ios-book-outline" icon-on="ion-ios-book" href="#/funcTab/order">
  7.             <ion-nav-view name="funcTab-order"></ion-nav-view>
  8.         </ion-tab>
  9.         <ion-tab title="检查" icon-off="ion-ios-medkit-outline" icon-on="ion-ios-medkit" href="#/funcTab/check">
  10.             <ion-nav-view name="funcTab-check"></ion-nav-view>
  11.         </ion-tab>
  12.         <ion-tab title="检验" icon-off="ion-ios-flask-outline" icon-on="ion-ios-flask" href="#/funcTab/test">
  13.             <ion-nav-view name="funcTab-test"></ion-nav-view>
  14.         </ion-tab>
  15.         <ion-tab title="用血" icon-off="ion-ios-heart-outline" icon-on="ion-ios-heart" href="#/funcTab/blood">
  16.             <ion-nav-view name="funcTab-blood"></ion-nav-view>
  17.         </ion-tab>
  18.         <ion-tab title="文书" icon-off="ion-ios-paper-outline" icon-on="ion-ios-paper" href="#/funcTab/document">
  19.             <ion-nav-view name="funcTab-document"></ion-nav-view>
  20.         </ion-tab>
  21.     </ion-tabs>
  22.     <ion-nav-view></ion-nav-view>
  23. </ion-view>
复制代码


回复 支持 反对

使用道具 举报

2

主题

6

帖子

42

积分

新手上路

Rank: 1

积分
42
 楼主| 发表于 2016-2-26 14:15:56 | 显示全部楼层
我已经弄好了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2016-5-8 16:37:24 | 显示全部楼层
我也碰到同样的问题,请问楼主是怎么处理的呢
回复 支持 反对

使用道具 举报

1

主题

6

帖子

27

积分

新手上路

Rank: 1

积分
27
发表于 2016-9-19 15:50:57 | 显示全部楼层
请问楼主怎么实现的呀,我也遇到了同样的问题,学生档不容易,求大神指教!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2024-4-17 02:41 , Processed in 0.055385 second(s), 36 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表