猿问

ng-repeat中的自定义排序功能

我有一组显示一定数量的磁贴,具体取决于用户选择的选项。我现在想通过显示的任何数字来实现排序。


下面的代码显示了我是如何实现的(通过在父卡范围内获取/设置一个值)。现在,由于orderBy函数采用一个字符串,因此我尝试在卡范围内设置一个名为curOptionValue的变量并以此进行排序,但它似乎不起作用。


因此,问题就变成了,如何创建自定义排序功能?


<div ng-controller="aggViewport" >

<div class="btn-group" >

    <button ng-click="setOption(opt.name)" ng-repeat="opt in optList" class="btn active">{{opt.name}}</button>

</div>

<div id="container" iso-grid width="500px" height="500px">

    <div ng-repeat="card in cards" class="item {{card.class}}" ng-controller="aggCardController">

        <table width="100%">

            <tr>

                <td align="center">

                    <h4>{{card.name}}</h4>

                </td>

            </tr>

            <tr>

                <td align="center"><h2>{{getOption()}}</h2></td>

            </tr>

        </table>        

    </div>

</div>

和控制器:


module.controller('aggViewport',['$scope','$location',function($scope,$location) {

    $scope.cards = [

        {name: card1, values: {opt1: 9, opt2: 10}},

        {name: card1, values: {opt1: 9, opt2: 10}}

    ];


    $scope.option = "opt1";


    $scope.setOption = function(val){

        $scope.option = val;

    }


}]);


module.controller('aggCardController',['$scope',function($scope){

    $scope.getOption = function(){

        return $scope.card.values[$scope.option];

    }

}]);


Cats萌萌
浏览 1310回答 3
3回答

桃花长相依

要将方向与orderBy函数一起包括:ng-repeat="card in cards | orderBy:myOrderbyFunction():defaultSortDirection"哪里defaultSortDirection = 0; // 0 = Ascending, 1 = Descending
随时随地看视频慕课网APP

相关分类

AngularJS
我要回答