角度多重排序,按顺序排列

时间:2013-11-04 16:02:14

标签: angularjs sorting angularjs-orderby

可能是一个非常苛刻的问题,我很遗憾,但我正在使用一个函数来对结果进行排序。 每个结果都有一个价格和一个加权(基本上是优先级)

我希望按价格排序结果,但结果价格相同,需要按重量排序。我也可以颠倒顺序,所以低 - 高/高 - 低。

这是一个带有一些可疑数据的plunker:

http://plnkr.co/edit/VH2WvyJMsLSTpWJawT2f?p=preview

在我的应用程序中(我有数百个结果),我使用了这个

$scope.orderByFunction = function (result) {
    if ($scope.orderBy == 'price-low-high') {
        return result.totalPrice.amount + result.boost;
    }
    if ($scope.orderBy == 'price-high-low') {
        return -result.totalPrice.amount + result.boost;
    }
    else return result.totalPrice.amount + result.boost;
};

虽然我认为它最初是成功的,但它有一些错误,因为它显示价格高于低价格的结果。感谢我很难证明这一点,所以我想我先问一下这个问题:)

1 个答案:

答案 0 :(得分:0)

https://groups.google.com/forum/#!topic/angular/XAJ2hyeRSTU

回答

这是html http://plnkr.co/edit/VH2WvyJMsLSTpWJawT2f?p=preview orderBy:[orderByPrice,orderByPriority]

和JS

$scope.orderByPrice = function (result) {
    if ($scope.orderBy == 'price-low-high') {
        return result.amount;
    }
    if ($scope.orderBy == 'price-high-low') {
        return -result.amount;
    }
    else return result.totalPrice.amount;
};
$scope.orderByPriority = function (result) {
        return result.priority;
};