如何对对象列表进行排序:

[
{a: 3, b: "H", c: "A"}
{a: 4, b: "G", c: "B"}}
{a: 1, b: "F", c: "E"}}
{a: 2, b: "E", c: "E"}}
{a: 6, b: "D", c: "D"}}
{a: 5, b: "A", c: "D"}}
]


在angularjs中使用Javascript?我知道可以在HTML中包含一些指令来帮助对此进行排序,但是我可以通过某种方式在$ filter上调用某些函数或在Service和/或Controller中对诸如此类的对象进行排序吗?说我想按键“ a”排序...或


按键“ a”排序,然后过滤键“ c”等于D的位置。
按“ c”分组,汇总计数为“ a”


还是一切都必须通过html template指令来工作?

最佳答案

您可以在控制器中使用$filter服务:

app.controller('MainCtrl', function($scope, $filter) {
  $scope.source = [{
    a: 3,
    b: "H",
    c: "A"
  }, {
    a: 4,
    b: "G",
    c: "B"
  }, {
    a: 1,
    b: "F",
    c: "E"
  }, {
    a: 2,
    b: "E",
    c: "E"
  }, {
    a: 6,
    b: "D",
    c: "D"
  }, {
    a: 5,
    b: "A",
    c: "D"
  }];

  $scope.filtered = $filter('filter')($scope.source, 'D', 'c');

});


本示例在AngularJS中使用“过滤器”过滤器在c属性中查找值为“ D”的对象。
这是一个工作的小伙伴:http://plnkr.co/edit/8kWhtOuSX0iEzuMEQdnq?p=preview

本文档页面提供了更多详细信息:https://docs.angularjs.org/guide/filter

关于javascript - AngularJS groupby还是过滤服务内部而不是HTML模板中的对象列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28549187/

10-16 23:23