gpt4 book ai didi

javascript - AngularJs ng-重复多个 orderBy 和条件

转载 作者:太空宇宙 更新时间:2023-11-04 15:57:44 24 4
gpt4 key购买 nike

我有一个包含工作经历的数据。我的就业日期有两个字段:

yearTo, monthTo

我需要根据最近的工作日期对工作历史进行正确排序

<tr id="employment_history_" ng-repeat="history in candidate.employmentHistory | orderBy : ['-yearTo','monthTo',] | date:['YYYY', 'MMM'] ">

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

问题是如何对此进行排序,我知道我有一个 date 格式,但我想要具有 monthToPresent 的记录第一个在列表上?

最佳答案

所以这个 JSFiddle 可以帮助你朝正确的方向发展:JSFiddle

其工作方式是因为您可以为 orderBy 指令提供一个谓词数组,就像您在提供的示例中所做的那样。然而,在您的示例中,您仅使用了字符串谓词,而您也可以使用函数谓词。函数谓词将接收您尝试订购的项目,您可以选择要返回的内容,以便 Angular 可以使用该值来订购该值。

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;
}
}

可以找到有关此的更多信息 here 。另外,在 JSFiddle 中我使用了 momentjs库,使处理日期变得更加容易。

关于javascript - AngularJs ng-重复多个 orderBy 和条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42548405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com