我有一个这样的对象数组:
$scope.sortableItems =
[
{
name: 'Blue Shirt',
fields: {Price: 20}
},
{
name: 'Pink Shirt',
fields: {Price: 80},
},
{
name: 'Orange Shirt',
fields: {Price: 10},
}
]
我需要创建一个ng-repeat
字段,以便根据价格从低到高或从高到低对产品进行排序。
我尝试过:
.product(ng-repeat="item in sortableItems | orderBy:fields.Price")
但是没有效果。
另外我还有另一个变量$scope.sortFunction
,它可以等于Price: Low-High
或Price: High-Low
,最终结果需要检测$scope.sortFunction
的值并根据字符串的值排序。不确定如何使用ng-repeat
答案 0 :(得分:0)
您可以创建一个返回价格的函数并在您的orderBy中使用该函数
js
$scope.getPrice = function(item){
return item.fields['Price'];
}
html
<div ng-repeat="item in sortableItems | orderBy:getPrice:false">{{item.fields['Price']}}</div>
order by需要第二个布尔值,您可以将其用于asc / desc排序。