首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJs ng-重复多次orderBy且有条件

AngularJs ng-重复多次orderBy且有条件
EN

Stack Overflow用户
提问于 2017-03-02 06:36:34
回答 1查看 740关注 0票数 1

我有一份载有就业记录的数据。我有两个字段用于我的就业,dateTo:

代码语言:javascript
复制
yearTo, monthTo

我需要根据最近的就业dateTo对就业历史进行正确的排序,我可以这样做

代码语言:javascript
复制
<tr id="employment_history_" ng-repeat="history in candidate.employmentHistory | orderBy : ['-yearTo','monthTo',] | date:['YYYY', 'MMM'] ">

它工作正常。但我有一个问题。字段monthTo还可以包含一个值Present,而不是仅包含月份、日期、格式、MMM等。

问我该如何排序,我知道我有一个date格式,但我希望将monthToPresent的记录放在列表的第一位?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-02 08:47:14

所以这个JSFiddle可以帮助你朝着正确的方向前进:JSFiddle

之所以这样做,是因为您可以给orderBy指令一个谓词数组,就像您在提供的示例中所做的那样。然而,在您的示例中,您只使用字符串谓词,而也可以使用函数谓词。函数谓词将接收您要订购的项,您可以选择要返回的项,因此角可以使用该值来排序该值。

代码语言:javascript
复制
ng-repeat="hist in main.history | orderBy: ['-yearTo', main.orderMonthTo]"

this.orderMonthTo = function(item) {
    if (item.monthTo === 'Present') {
    return -13;
  } else {
    return Number(moment(item.monthTo, 'MMM').format('M'))*-1;
  }
}

有关此这里的更多信息可以找到。此外,在JSFiddle中,我使用了动量库来简化日期的处理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42548405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档