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 に答える