列表是一个应用广泛在几乎所有移动app中的界面元素。ionList 和 ionItem 这两个指令还支持多种多样的交互模式,比如移除其中的某一项,拖动重新排序,滑动编辑等等。
- <ion-list>
- <ion-item ng-repeat="item in items">
- Hello, {{item}}!
- </ion-item>
- </ion-list>
- <ion-list ng-controller="MyCtrl"
- show-delete="shouldShowDelete"
- show-reorder="shouldShowReorder"
- can-swipe="listCanSwipe">
- <ion-item ng-repeat="item in items"
- class="item-thumbnail-left">
- <img ng-src="{{item.img}}">
- <h2>{{item.title}}</h2>
- <p>{{item.description}}</p>
- <ion-option-button class="button-positive"
- ng-click="share(item)">
- 分享
- </ion-option-button>
- <ion-option-button class="button-info"
- ng-click="edit(item)">
- 编辑
- </ion-option-button>
- <ion-delete-button class="ion-minus-circled"
- ng-click="items.splice($index, 1)">
- </ion-delete-button>
- <ion-reorder-button class="ion-navicon"
- on-reorder="reorderItem(item, $fromIndex, $toIndex)">
- </ion-reorder-button>
- </ion-item>
- </ion-list>
属性 | 类型 | 详情 |
---|---|---|
delegate-handle (可选) | 字符串 | 该句柄定义带有 |
show-delete (可选) | 布尔值 | 列表项的删除按钮当前是显示还是隐藏。 |
show-reorder (可选) | 布尔值 | 列表项的排序按钮当前是显示还是隐藏。 |
can-swipe (可选) | 布尔值 | 列表项是否被允许滑动显示选项按钮。默认:true。 |
- <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 List Directive</title>
- <link href="http://www.shouce.ren/static/ionic/css/ionic.min.css" rel="stylesheet">
- <script src="http://www.shouce.ren/static/ionic/js/ionic.bundle.min.js"></script>
- </head>
- <body ng-controller="MyCtrl">
- <ion-header-bar class="bar-positive">
- <div class="buttons">
- <button class="button button-icon icon ion-ios-minus-outline"
- ng-click="data.showDelete = !data.showDelete; data.showReorder = false"></button>
- </div>
- <h1 class="title">Ionic Delete/Option Buttons</h1>
- <div class="buttons">
- <button class="button" ng-click="data.showDelete = false; data.showReorder = !data.showReorder">
- Reorder
- </button>
- </div>
- </ion-header-bar>
- <ion-content>
- <!-- The list directive is great, but be sure to also checkout the collection repeat directive when scrolling through large lists -->
- <ion-list show-delete="data.showDelete" show-reorder="data.showReorder">
- <ion-item ng-repeat="item in items"
- item="item"
- href="#/item/{{item.id}}" class="item-remove-animate">
- Item {{ item.id }}
- <ion-delete-button class="ion-minus-circled"
- ng-click="onItemDelete(item)">
- </ion-delete-button>
- <ion-option-button class="button-assertive"
- ng-click="edit(item)">
- Edit
- </ion-option-button>
- <ion-option-button class="button-calm"
- ng-click="share(item)">
- Share
- </ion-option-button>
- <ion-reorder-button class="ion-navicon" on-reorder="moveItem(item, $fromIndex, $toIndex)"></ion-reorder-button>
- </ion-item>
- </ion-list>
- </ion-content>
- </body>
- </html>
- body {
- cursor: url('http://www.shouce.ren/try/demo_source/finger.png'), auto;
- }
- angular.module('ionicApp', ['ionic'])
- .controller('MyCtrl', function($scope) {
- $scope.data = {
- showDelete: false
- };
- $scope.edit = function(item) {
- alert('Edit Item: ' + item.id);
- };
- $scope.share = function(item) {
- alert('Share Item: ' + item.id);
- };
- $scope.moveItem = function(item, fromIndex, toIndex) {
- $scope.items.splice(fromIndex, 1);
- $scope.items.splice(toIndex, 0, item);
- };
- $scope.onItemDelete = function(item) {
- $scope.items.splice($scope.items.indexOf(item), 1);
- };
- $scope.items = [
- { id: 0 },
- { id: 1 },
- { id: 2 },
- { id: 3 },
- { id: 4 },
- { id: 5 },
- { id: 6 },
- { id: 7 },
- { id: 8 },
- { id: 9 },
- { id: 10 },
- { id: 11 },
- { id: 12 },
- { id: 13 },
- { id: 14 },
- { id: 15 },
- { id: 16 },
- { id: 17 },
- { id: 18 },
- { id: 19 },
- { id: 20 },
- { id: 21 },
- { id: 22 },
- { id: 23 },
- { id: 24 },
- { id: 25 },
- { id: 26 },
- { id: 27 },
- { id: 28 },
- { id: 29 },
- { id: 30 },
- { id: 31 },
- { id: 32 },
- { id: 33 },
- { id: 34 },
- { id: 35 },
- { id: 36 },
- { id: 37 },
- { id: 38 },
- { id: 39 },
- { id: 40 },
- { id: 41 },
- { id: 42 },
- { id: 43 },
- { id: 44 },
- { id: 45 },
- { id: 46 },
- { id: 47 },
- { id: 48 },
- { id: 49 },
- { id: 50 }
- ];
- });