如何在单循环中过滤和分组angularjs中的产品
How to filter and group products in angularjs in single loop
JSON数组如下:
[
{
"Variants": [],
"SubCategoryID": "53",
"ProductImagePath": "/images/quaker/1247.png",
"SubCategoryName": "Oats",
"BrandName": "Quaker",
"ProductID": "1247",
"BrandID": "229",
"ProductName": "Oats - Home Style Masala"
},
{
"Variants": [],
"SubCategoryID": "53",
"ProductImagePath": "/images/quaker/1247.png",
"SubCategoryName": "Oats",
"BrandName": "Suffola",
"ProductID": "1047",
"BrandID": "129",
"ProductName": "Oats - Home Style Masala"
},
{
"Variants": [],
"SubCategoryID": "53",
"ProductImagePath": "/images/quaker/1246.png",
"SubCategoryName": "Oats",
"BrandName": "Quaker",
"ProductID": "1246",
"BrandID": "229",
"ProductName": "Oats - Kesar Flavour with Kismis"
},
{
"Variants": [],
"SubCategoryID": "53",
"ProductImagePath": "/images/quaker/1246.png",
"SubCategoryName": "Oats",
"BrandName": "Suffola",
"ProductID": "1046",
"BrandID": "129",
"ProductName": "Oats - Kesar Flavour with Kismis"
},
{
"Variants": [],
"SubCategoryID": "53",
"ProductImagePath": "/images/quaker/1245.png",
"SubCategoryName": "Oats",
"BrandName": "Quaker",
"ProductID": "1245",
"BrandID": "229",
"ProductName": "Oats - Multigrain Advantage"
},
{
"Variants": [],
"SubCategoryID": "53",
"ProductImagePath": "/images/quaker/1245.png",
"SubCategoryName": "Oats",
"BrandName": "Suffola",
"ProductID": "1045",
"BrandID": "129",
"ProductName": "Oats - Multigrain Advantage"
},
{
"Variants": [],
"SubCategoryID": "38",
"ProductImagePath": "/images/dry_fruits/walnut.jpg",
"SubCategoryName": "Dry Fruits",
"BrandName": "Quality Plus",
"ProductID": "24",
"BrandID": "58",
"ProductName": "Chestnut (Akhrot Gota)"
},
{
"Variants": [],
"SubCategoryID": "38",
"ProductImagePath": "/images/dry_fruits/walnut.jpg",
"SubCategoryName": "Dry Fruits",
"BrandName": "Quality Plus",
"ProductID": "24",
"BrandID": "58",
"ProductName": "Chestnut -2 (Akhrot Gota)"
},
{
"Variants": [],
"SubCategoryID": "38",
"ProductImagePath": "/images/dry_fruits/walnut.jpg",
"SubCategoryName": "Dry Fruits",
"BrandName": "Quality Plus",
"ProductID": "24",
"BrandID": "58",
"ProductName": "Chestnut -3 (Akhrot Gota)"
}
]
我们可以使用以下命令显示特定子类别的产品:
<div class='box' ng-repeat="product in pc.ProductService.Products | filter:FilterExpr:true | orderBy:'ProductName'">
<!-- Code to display the products -->
</div>
我在选择子类别时在JavaScript中设置FilterExpr:
$scope.FilterExpr = {'SubCategoryID': $stateParams.SCID.toString()};
例如,选择SubCategoryID = 53时,产品将显示如下:
"BrandName": "Quaker",
"ProductName": "Oats - Home Style Masala"
"BrandName": "Suffola",
"ProductName": "Oats - Home Style Masala"
"BrandName": "Quaker",
"ProductName": "Oats - Kesar Flavour with Kismis"
"BrandName": "Suffola",
"ProductName": "Oats - Kesar Flavour with Kismis"
"BrandName": "Quaker",
"ProductName": "Oats - Multigrain Advantage"
"BrandName": "Suffola",
"ProductName": "Oats - Multigrain Advantage"
但是我还想按品牌名称对它们进行分组,这意味着在所选子类别中特定品牌的所有产品必须一起显示:
"BrandName": "Quaker",
"ProductName": "Oats - Home Style Masala"
"BrandName": "Quaker",
"ProductName": "Oats - Kesar Flavour with Kismis"
"BrandName": "Quaker",
"ProductName": "Oats - Multigrain Advantage"
"BrandName": "Suffola",
"ProductName": "Oats - Home Style Masala"
"BrandName": "Suffola",
"ProductName": "Oats - Kesar Flavour with Kismis"
"BrandName": "Suffola",
"ProductName": "Oats - Multigrain Advantage"
怎么做??
试试group by
<div class='box' ng-repeat="product in pc.ProductService.Products | filter:FilterExpr:true | groupBy:'BrandName' | orderBy:'ProductName'">
<!-- Code to display the products -->
</div>
app.filter('groupBy', function() {
return _.memoize(function(items, field) {
return _.groupBy(items, field);
}
);
});
http://jsfiddle.net/TD7t3/相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- AngularJS:我可以跳过函数参数回调吗
- AngularJS UI路由器不能像ng路由器那样工作
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 如何包含特定于每个视图angularjs的javascript文件
- AngularJS:ng之后,重复$scope值未按预期更新
- AngularJS-在JSON选择器中使用变量名
- $window.ga在AngularJS事件中未定义
- AngularJS-使用'true'属性
- 打开一个模态并将其链接到AngularJS中的指令
- Angularjs代码未在匿名函数中运行
- angularjs+rails应用程序中未显示模板
- 我的AngularJS表达式没有'不起作用
- AngularJS JSON not arriving php
- 使用AngularJS中的筛选器更新给定的表
- Angularjs工厂注入错误
- AngularJS设计指南
- Angularjs-utils高亮过滤器在搜索时破坏应用程序
- 使用angularjs验证文本框中的电子邮件
- 如何在单循环中过滤和分组angularjs中的产品