【问题标题】:Angular Filter OrderBy sort by a string but not alphabeticallyAngular Filter OrderBy 按字符串排序,但不按字母顺序排序
【发布时间】:2016-12-16 22:44:17
【问题描述】:

我正在遍历 ng-repeat 中的对象列表,并且我想根据一个名为approved 的属性对它们进行排序。批准可以是“批准”、“拒绝”或“待定”。我希望先出现待处理,然后是 Approved,然后是 Denied。按字母顺序排序不会给我这个结果,我不确定是否有办法通过使用 orderBy 来指定排序顺序。目前它按字母顺序和日期排序:

orderBy: ['approved', 'date']

有没有办法使用 orderBy 来达到这个结果?

谢谢。

【问题讨论】:

  • 也许您需要一个具有排序优先级属性或顺序属性的对象,待定 =1 等...您绑定到名称,但您按优先级/顺序排序优先级
  • 可以按函数编写自定义订单

标签: javascript angularjs


【解决方案1】:

也许您需要一个具有排序优先级属性或排序属性的对象,Pending =1 等...您绑定到状态,但您按优先级/顺序优先级排序

[{status:'pending', order:1},{status:'approved', order:2},{status:'denied', order:3}

【讨论】:

  • 完美!我在 Javascript 和 Angular 方面相当缺乏经验,我只有一个问题:我实现这一点的方式是我会从后端获取数据并将其分配给一个变量,我们称之为对象。现在为了给它顺序,我将运行一个循环并循环遍历对象中的所有对象并以这种方式设置顺序。有没有更好的方法来用角度做到这一点?谢谢!
  • 如果这是来自数据库,我假设您有某种代码表,其中包含待处理、已批准、已拒绝,如果可能,我会将订单放在那里,如果没有,那么实际的 API,如果不存在,那么您必须做一些 hack,在其中循环遍历返回的所有对象并在其中添加 order 属性,我会讨厌这样,因为如果添加新代码会很脆弱。我需要更多信息才能为您提供最佳解决方案,只需为下一个必须弄清楚的人做最好的事情..
  • 这些数据是否来自您有权访问的数据库?还是WEB api?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-17
  • 1970-01-01
相关资源
最近更新 更多