简化后的主要代码:

        $scope.groups = [];

        for (var i = 0; i < 2; i++) {

            $scope.groups[i] = {
name: i,
items: []
}; for (var j = 0; j < 3; j++) {
var item = { name: i + '-' + j, items: [] }; for (var k = 0; k < 3; k++) {
item.items.push({ name: 'kkk' + k });
} $scope.groups[i].items.push(item);
}
} $scope.toggleGroup = function (group) {
if ($scope.isGroupShown(group)) {
$scope.shownGroup = null;
$scope.shown2 = null;
} else {
$scope.shownGroup = group;
}
};
$scope.isGroupShown = function (group) {
return $scope.shownGroup === group;
}; $scope.isGroupShown2 = function (group) {
return $scope.shown2 === group;
}; $scope.max = function (group) {
if ($scope.isGroupShown2(group)) {
$scope.shown2 = null;
} else {
$scope.shown2 = group;
}
};
            <ion-list>
<div ng-repeat="group in groups">
<ion-item class="item-stable item-icon-right"
ng-click="toggleGroup(group)"
ng-class="{active: isGroupShown(group)}">
<i class="icon" ng-class="isGroupShown(group) ? 'ion-minus' : 'ion-plus'"></i>
&nbsp;
Group {{group.name}}
</ion-item>
<div ng-repeat="item in group.items"> <ion-item class="item-accordion item-icon-right"
ng-if="isGroupShown(group)" ng-click="max(item)" style="padding-left: 50px;">
<i class="icon" ng-class="isGroupShown2(item) ? 'ion-minus' : 'ion-plus'"></i>
{{item.name}}
</ion-item> <ion-item class="item-accordion" ng-if="isGroupShown2(item)" style="padding-left: 80px;">
<div ng-repeat="subitem in item.items">
{{subitem.name}}
</div>
</ion-item> </div>
</div>
</ion-list>

本文转自:http://codepen.io/morsiki/pen/KdMRgN?editors=101

<html ng-app="ionicApp">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>Ionic Accordion</title> <link href="//code.ionicframework.com/nightly/css/ionic.css" rel="stylesheet">
<script src="//code.ionicframework.com/nightly/js/ionic.bundle.js"></script> </head> <body ng-controller="MyCtrl"> <ion-header-bar class="bar-positive">
<h1 class="title">Accordion List</h1>
</ion-header-bar> <ion-content> <ion-list>
<div ng-repeat="group in groups">
<ion-item class="item-stable"
ng-click="toggleGroup(group)"
ng-class="{active: isGroupShown(group)}">
<i class="icon" ng-class="isGroupShown(group) ? 'ion-minus' : 'ion-plus'"></i>
&nbsp;
Group {{group.name}}
</ion-item>
<div ng-repeat="item in group.items">
<ion-item class="item-accordion"
ng-if="isGroupShown(group)" ng-click="max(item)" style="padding-left: 50px;">
<i class="icon" ng-class="isGroupShown2(item) ? 'ion-minus' : 'ion-plus'"></i>
{{item.subId}}
</ion-item>
<ion-item class="item-accordion" ng-if="isGroupShown2(item)" style="padding-left: 80px;">
Example1<br>
Example2
</ion-item>
</div>
</div>
</ion-list> </ion-content> </body>
</html>
angular.module('ionicApp', ['ionic'])

.controller('MyCtrl', function($scope) {
$scope.groups = [];
for (var i=0; i<10; i++) {
$scope.groups[i] = {
name: i,
items: []
};
for (var j=0; j<3; j++) {
$scope.groups[i].items.push(i + '-' + j);
}
} /*
* if given group is the selected group, deselect it
* else, select the given group
*/
$scope.toggleGroup = function(group) {
if ($scope.isGroupShown(group)) {
$scope.shownGroup = null;
} else {
$scope.shownGroup = group;
}
};
$scope.isGroupShown = function(group) {
return $scope.shownGroup === group;
}; });
body {
cursor: url('http://ionicframework.com/img/finger.png'), auto;
} /*
* http://docs.angularjs.org/api/ng/directive/ngShow#usage_animations
*/
.list .item.item-accordion {
line-height: 38px;
padding-top:;
padding-bottom:;
transition: 0.09s all linear;
}
.list .item.item-accordion.ng-hide {
line-height: 0px;
}
.list .item.item-accordion.ng-hide-add,
.list .item.item-accordion.ng-hide-remove {
display: block !important;
}

[转]ionic Accordion list three levels的更多相关文章

  1. Ionic + AngularJS

    Ionic Framework Ionic framework is the youngest in our top 5 stack, as the alpha was released in lat ...

  2. 【BZOJ1713】[Usaco2007 China]The Bovine Accordion and Banjo Orchestra 音乐会 斜率优化

    [BZOJ1713][Usaco2007 China]The Bovine Accordion and Banjo Orchestra 音乐会 Description Input 第1行输入N,之后N ...

  3. BZOJ_1713_[Usaco2007 China]The Bovine Accordion and Banjo Orchestra 音乐会_斜率优化

    BZOJ_1713_[Usaco2007 China]The Bovine Accordion and Banjo Orchestra 音乐会_斜率优化 Description Input 第1行输入 ...

  4. Xamarin vs React Native vs Ionic vs NativeScript: Cross-platform Mobile Frameworks Comparison

    CONTENTS Reading time: 14 minutes Cross-platform mobile development has long been a viable alternati ...

  5. ionic第二坑——ionic 上拉菜单(ActionSheet)安卓样式坑

    闲话不说,先上图: 这是IOS上的显示效果,代码如下: HTML部分: <body ng-app="starter" ng-controller="actionsh ...

  6. ionic第一坑——ion-slide-box坑(ion-slide分两页的坑)

    ionic.views.Slider = ionic.views.View.inherit({ initialize: function (options) { . . . function setu ...

  7. ionic之$ionicGesture手势(大坑)

    鄙人来本公司前未用过ionic框架,但由于ionic是基于angularjs封装的,正好我用过angularjs,很荣幸的面试就过了,然后通过该网站http://www.ionic.wang(后面简称 ...

  8. Ionic2系列——Ionic 2 Guide 官方文档中文版

    最近一直没更新博客,业余时间都在翻译Ionic2的文档.之前本来是想写一个入门,后来觉得干脆把官方文档翻译一下算了,因为官方文档就是最好的入门教程.后来越翻译越觉得这个事情确实比较费精力,不知道什么时 ...

  9. Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

    安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...

随机推荐

  1. Aspose.Word 操作word复杂表格 拆分单元格 复制行 插入行 文字颜色

    private void button3_Click(object sender, EventArgs e)         {             object savePathWord =&q ...

  2. 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能

    [源码下载] 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 作者:webabcd 介绍与众不同 windows ...

  3. 数据库的有关知识==>>我们的血泪史之经典练习(1-2)

    今天给大家说说数据库的有关知识 抒情一下,想在好困,真的,虽然我在这温暖的教室,身边有知心的盆友, ,很高兴还能是学生的一员,我们还年轻,我们也不会想的太多,高高兴兴上学,快快乐乐回家,每天吃的饱饱, ...

  4. New Valid Tracking Metric Now Available in Seller Central

    On July 7, Amazon added Valid Tracking Rate as a new metric in Seller Central. This metric shows the ...

  5. Microsoft Dynamics CRM 前瑞开发

    做CRM开发最大的感受就是其前瑞开发过程中,调试起来比较麻烦,需要做一些断点还要配制一些浏览器设置,对新手来说比较困难.还有就是对REST调试,经常为了调试一个正确的结果而花费大量的时间.现在推荐一个 ...

  6. 对抗静态分析——so文件的加密

    [预备起~~~]最近在忙找工作的事情,笔试~面试~笔试~面试...很久没有写(pian)文(gao)章(fei).忙了一阵子之后,终于~~~到了选offer的阶段(你家公司不是牛吗,老子不接你家off ...

  7. SharePoint 网站登录不上,3次输入用户名/密码白页

    新搭建的SharePoint 2013环境,第一次干的这么憋屈的慌,先是接了一个Ghost的服务器,装好的服务器.Sql.SharePoint.VS等一系列,却发现怎么都登陆不上去,输入账号3次以后白 ...

  8. 获取经过跳转后的url地址

    粗略一算,不写code已经好几个月了. 昨日受兄弟所托,为他写了一个小小的程序. 程序功能: 自动获取跳转后的Url地址 如下图所示: (newUrl.txt为转换后的地址信息...) 实现过程: 每 ...

  9. SharePoint 2010: Nailing the error "The Security Token Service is unavailable"

    http://blogs.technet.com/b/sykhad-msft/archive/2012/02/25/sharepoint-2010-nailing-the-error-quot-the ...

  10. 转发离线安装 Android Studio 更新

    1.在线更新 随着 Android Studio 的越来越完善与流行,无论从功能性,还是性能上,它正在成为广大 Android 开发者的首选.但是因为总所周知墙的原因,我们在 Android Stud ...