鉴于下面的数据模型,我试图按制造商名称和/或价格对产品进行排序。它是一种工作方式,并且按升序和降序排序,但是它按制造商对分类进行分组,例如,按价格排序时,我希望如下:
预期产出(按价格计算)
Apple Macbook - 1200.00
Acer Laptop - 900.00
Apple Ipad - 420.00
Acer Mouse - 20.00
实际输出(按价格计算)
Apple Macbook - 1200.00
Apple Ipad - 420.00
Acer Laptop - 900.00
Acer Mouse - 20.00
这似乎是一个直截了当的问题,但我是Angular的新手,所以只是试着理解它。任何帮助都会很棒!
<select ng-model="sortBy">
<option value="" selected="selected">Sort Type</option>
<option value="+price">Price - high to low</option>
<option value="-price">Price - low to high</option>
<option value="-manufacturerName">Manufacturer A-Z</option>
<option value="+manufacturerName">Manufacturer Z-A</option>
</select>
<div ng-repeat="manufacturer in manufacturer.manufacturers">
<div ng-repeat="product in manufacturer.products | filter:filterByFeature | orderBy:sortBy">
// stuff
</div>
</div>
{
"manufacturers": [
{
"manufacturerId": 1,
"manufacturerName": "Apple",
"products": [
{
"name": "Macbook",
"price": 1200.00
},
{
"name": "Ipad",
"price": 420.00
}
]
},
{
"manufacturerId": 2,
"manufacturerName": "Acer",
"products": [
{
"name": "Laptop",
"price": 900.00
},
{
"name": "Mouse",
"price": 20.00
}
]
}
]
}
答案 0 :(得分:1)
您没有对制造商进行分类。围绕ng-repeat
的{{1}}不会对制造商进行排序,因此它将始终是相同的顺序,并且单个制造商的产品中的子阵列将被排序而不考虑其他产品。您可能希望重新构建数据,以便它可以排序的单个产品列表。
manufacturer.manufacturers
应该这样做(在示例中使用下划线)。