码迷,mamicode.com
首页 > 其他好文 > 详细

[ionic开源项目教程] - 第3讲 左右滑动菜单的实现(使用Tabs和SlideBox)

时间:2016-07-24 01:42:29      阅读:2087      评论:0      收藏:0      [点我收藏+]

标签:

使用Tabs和SlideBox实现左右滑动菜单

 

技术分享

1.将tab1.html的代码改为如下:

<ion-view view-title="健康"> 
  <ion-content class="has-header">
    <ion-slide-box show-pager="false" class="has-header" on-slide-changed="slideChanged($index)">
      <ion-slide ng-repeat="slide in slides">
        <div class="list">
          <a ng-repeat="item in tabs" class="item item-thumbnail-left" href="#">
            <img ng-src="img/TongeBlog.jpg" width="30" height="30" > 
            <h2>title:{{slide.name}}</h2>
            <p>description</p>
          </a>
        </div>
      </ion-slide>
    </ion-slide-box>
  </ion-content> 
  <ion-tabs class="tabs-striped tabs-top">
    <ion-tab ng-repeat="item in tabs" on-select="selectedTab($index)" title="{{item.name}}"></ion-tab>
  </ion-tabs> 
</ion-view>

2.service层的Tab1Service

angular.module(‘starter.services‘, [])
    .service(‘Tab1Service‘, function ($http) {
        this.getClassify = function () {
          return [
            { name: ‘健康资讯‘, viewable: true, url: domain + ‘/info/list‘, page: 1, rows: 20 },
            { name: ‘健康知识‘, viewable: false, url: domain + ‘/lore/list‘, page: 1, rows: 20 },
            { name: ‘健康问答‘, viewable: false, url: domain + ‘/ask/list‘, page: 1, rows: 20 },
            { name: ‘健康图书‘, viewable: false, url: domain + ‘/book/list‘, page: 1, rows: 20 }
          ]
        }

        this.getList = function (url, page, rows) {
          return $http.post(url, { page: page, rows: rows })
        } 
  });

3.完善对应的Tab1Ctrl

.controller(‘Tab1Ctrl‘, function ($scope, Tab1Service,  $ionicSlideBoxDelegate, $ionicTabsDelegate) {
    var items = Tab1Service.getClassify()
    $scope.slides = items;
    $scope.tabs = items;

    var slideIndex = 0;

    $scope.slideChanged = function (index) {
        $ionicTabsDelegate._instances[1].select(index);
    };
    $scope.$on(‘$ionicView.afterEnter‘, function () {
        $ionicTabsDelegate._instances[1].select($ionicSlideBoxDelegate.currentIndex());
    });

    $scope.selectedTab = function (index) {
        //滑动的索引和速度
        $ionicSlideBoxDelegate.slide(index)
    }

})

4.代码解释

上面菜单部分使用了Tab组建,中间的列表部分使用SlideBox,并不存在任何嵌套,只是在各自选择的时候做一些处理。

  • Tab1Service:使用依赖注入,来调用服务层获取数据。

  • slideChange:slidebox选择的时候将tab对应的索引选中。

  • selectedTab:选中tab的时候,将对应的slidebox选中。

  • ionicView.afterEnter:在页面加载完成的时候默认让tab的第一个项选中。

  • _instances[1]:是因为该项目中用了两个tab

[ionic开源项目教程] - 第3讲 左右滑动菜单的实现(使用Tabs和SlideBox)

标签:

原文地址:http://www.cnblogs.com/tonge/p/5699968.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!