我试图在我的产品页面上进行排序。我在订购价格方面很挣扎,现在它订购价格,因为它们是字符串。降序结果如下:
$7.00
$6.00
$55.00
$42.00
我想以这种方式显示它:
$55.00
$42.00
$7.00
$6.00
所以我没有完全以数字格式(他们开头有$)。
// get sort options
var predicate, reverse;
switch ($scope.filter.sort) {
case 'priceAsc':
predicate = 'sizes[0].price';
reverse = true;
break;
case 'priceDesc':
predicate = 'sizes[0].price';
reverse = false;
break;
}
// order data object
var orderBy = $filter('orderBy');
$scope.products = orderBy($scope.products, '-' + predicate, reverse);
产品数组有大小数组,每个大小都有自己的价格。我怎么能解决它,任何建议?任何帮助将不胜感激。
答案 0 :(得分:3)
你可以尝试用函数
编写自己的过滤器顺序$scope.priceValue = function(price) {
return parseFloat(str.replace('$', price));
};
ng-repeat="price in prices | orderBy:priceValue"
答案 1 :(得分:0)
首先:从价格中删除$:
for (var i = 0; i < product.sizes.length; i++) {
product.sizes[i].price.replace('?', '');
}
现在按尺寸订购ng-repeat,并使用货币过滤器显示。
<div ng-repeat="size in product.sizes | orderBy: size.price">Price: {{size.price | 'currency'}}</div>