【问题标题】:ordering ng-repeat by several properties按几个属性排序 ng-repeat
【发布时间】:2016-04-25 09:38:50
【问题描述】:

我有一个表格来显示某些球队的成绩,每个球队都有两个值 - PTS(积分)和 GD(净胜球)。

数据看起来像这样:

A: PTS=3, GD=+3,
B: PTS=2, GD=+1,
C: PTS=2, GD=-1,
D: PTS=0, GD=-1

我想通过 ng-repeat 显示它们,首先是 PTS(如上所述)。但是如果任何一支球队在积分上与另一支球队相同,则需要由GD(净胜球)决定。最后,即使这对它们进行了另一种排序,我希望它恢复到字母顺序。

我知道如何使用orderBy,然后可以使用teamName属性(A,B,C)等来订购它们。

我猜这类似于创建自定义 orderBy 过滤器,如下所示:

orderBy="{{pts || gd || teamName}}"

我不确定语法,也不知道该代码的放置位置。我可以将上述逻辑附加到一个变量,然后在 orderBy 中调用它吗?或者它是一个过滤器?

对此的任何帮助将不胜感激。

【问题讨论】:

标签: angularjs variables filter properties ng-repeat


【解决方案1】:

要将 orderBy 与多个字段一起使用,您必须将此字段添加到数组中,例如 ['pst', 'gd', 'teamName']

现在数据是:

      A: PTS=3, GD=+3,
      B: PTS=2, GD=+1,
      C: PTS=2, GD=-1,
      D: PTS=0, GD=-1

如果考虑“A”、“B”、“C”和“D”是团队名称。

  • teamName -> 升序顺序
  • gd -> 升序顺序
  • pts -> 降序

那么 orderBy 的语法是:

        orderBy:['-pst', 'gd', 'teamName']

***“-pst”用于按降序显示pst元素

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多