0

可能是一个非常愚蠢的问题,我错过了明显的问题,但我正在使用一个函数来对我的结果进行排序。每个结果都有一个价格和一个权重(基本上是优先级)

我想要按价格排序的结果,但是有相同价格的结果,它们需要按重量排序。我也可以颠倒排序,所以低-高/高-低。

这是一个带有一些点头数据的笨蛋:

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;
};

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

4

1 回答 1

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;
};
于 2013-11-05T15:33:00.227 回答