ionic项目之排序问题

1,一开始用js原生的排序方法,有个错误(超过十条数据后就会排序混乱,可能是在angularjs中使用js原生方法的bug

var results = results.sort(function(a, b){
               switch ( sortKey ) {
                  case "date": 
                    return a.id < b.id;
                  case "donedate": 
                    return a.donedate > b.donedate;
                  case "title": 
                    return a.title > b.title;
                  case "importance": 
                    return parseInt(b.importance) - parseInt(a.importance);
                  default: 

                    return a.id < b.id;
               }
            });


2,其实angularjs有自己的排序方法(orderBy

http://docs.angularjs.cn/api/ng/filter/orderBy


Usage

In HTML Template Binding

{{ orderBy_expression | orderBy : expression : reverse}}

In JavaScript

$filter('orderBy')(array, expression, reverse)

orderBy_expression:要排序的数据

expression:排序类型

reverse:升序或降序(true或false)


js代码

$scope.sort = function() {
		nonePopover();
		$ionicActionSheet.show({
			buttons: [{
				text: '按<b>发布日期</b>排序'
			}, {
				text: '按<b>完成日期</b>排序'
			},  {
				text: '按<b>标题</b>排序'
			},{
				text: '按<b>重要度</b>排序'
			}],
			titleText: '选择排序方法',
			cancelText: '关闭',
			cancel: function() {
				return true;
			},
			buttonClicked: function(index) {
				var sortKey = "";

				switch (index) {
					case 0:
						$scope.expression = "id";
						$scope.reverse = true;
						break;
					case 1:
						$scope.expression = "donedate";
						$scope.reverse = false;
						break;
					case 2:
						$scope.expression = "title";
						$scope.reverse = true;
						break;
					case 3:
						$scope.expression = "importance";
						$scope.reverse = true;
						break;
					default:
						$scope.expression = "id";
						$scope.reverse = true;
				}
				TodoListService.findByGroupId($stateParams.groupId, sortKey).then(function(todolists) {
					$scope.todolists = todolists; // 未完成
				});
				return true;
			}
		});
	}

html代码

<div class="item item-checkbox" 
        ng-repeat="todo in todolists  | orderBy : expression : reverse " 
        
        ng-click="show({{todo.id}})"
        ng-show="todolists.length">










  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值