如何对 ng 重复子文档进行分组

How to Group ng-repeat subdocuments?

本文关键字:文档 ng      更新时间:2023-09-26

我正在使用AngularJS,其中我有子文档,我的JSON如下所示。我想知道如何对我的子文档进行分组(orderfood内的列表)。我的普伦克链接。我现在得到的结果是。

Isnain Meals
Chicken Burger
Chicken Burger

但我希望我的结果是这样的

Isnain Meals
Chicken Burger(2)

JSON数据

$scope.lists = [
{
  "_id": "56b0c315e179bb0e00a44dbf",
  "orderfood": [
    {
      "_id": "569d865bff1fe20e00f8ba97",
      "qty": "1",
      "confirm": true,
      "price": 154,
      "name": "Isnain Meals"
    }
  ],
  "content": "9176649143",
  "created": "2016-02-02T14:54:13.926Z"
},
{
  "_id": "56b06ed25b53250e00ccbd73",
  "orderfood": [
    {
      "_id": "569d84f04834c10e003dff36",
      "qty": "1",
      "confirm": true,
      "price": 125,
      "name": "Chicken Burger"
    }
  ],
  "content": "6886058585",
  "created": "2016-02-02T08:54:42.986Z"
},
{
  "_id": "56b06ed25b53250e00ccbd74",
  "orderfood": [
    {
      "_id": "569d84f04834c10e003dff37",
      "qty": "1",
      "confirm": true,
      "price": 125,
      "name": "Chicken Burger"
    }
  ],
  "content": "6886058585",
  "created": "2016-02-02T08:54:42.986Z"
}];

我的普伦克链接

您可以使用

过滤器"groupBy"

<div ng-repeat="(key, value) in lists | groupBy: 'name'">
   {{key}} ({{value.length}})
</div>

值是分组数据的列表。

请参阅相关问题:如何使用角度过滤器对数据进行分组?

我使用 lodash 对子文档进行分组

$scope.groupedByFoodName = _.chain($scope.lists).map(function(each) {
  return each.orderfood
}).flatten().groupBy(function(each) {
  return each.name
}).value();

演示