ng-repeat条件过滤器有两个表达式

时间:2017-01-27 14:21:49

标签: angularjs ng-repeat

我正在寻找一种方法,让一个ng-repeat可以过滤或者按顺序排列'或者在id'。 所以像这样:

ng-repeat "cd in cds | filter: !order ? orderBy:'id' : orderBy:'order'"

因此,如果订单为空(没有数据),则应按ID排序,如果订单确实有数据,则应按订单排序' order'。这可能吗?它现在给出两倍相同的数据,条件似乎不起作用

2 个答案:

答案 0 :(得分:1)

你很亲密;尝试这样的事情:

ng-repeat "cd in cds | orderBy: (!order ? 'id' : 'order')"

答案 1 :(得分:1)

谢谢安德鲁·戴蒙德,这成了我的重复次序

ng-repeat="cd in cds| orderBy: (ordering != null ? 'order' : 'id')"

这个控制器(必须添加$ scope.ordering):

    function GetCDS() {
        $http({
            method: 'Get',
            url: "/cds"
        })
            .success(function (data, status, headers, config) {        
                $scope.cds = data;
                $scope.ordering = data[0].order;
            })
            .error(function (data, status, headers, config) {
                $scope.message = 'Unexpected Error';
            });
    }