2017-03-02 84 views
0

我有一個包含工作經歷的數據。我有我的工作dateTo兩個領域:AngularJs ng-repeat multiple orderBy and condition

yearTo, monthTo 

我需要梳理的基礎上正確最近的就業dateTo就業的歷史,我可以做的

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

它正常工作。但我有一個問題。現場monthTo也可以containt值Present而不是僅僅一個月的日期格式MMMJAN, FEB MAR

問我怎麼解決這,我知道我有一個date格式,但我想它有monthToPresent的記錄首先在名單上?

+0

你在問如何處理存在作爲一個價值按順序? –

+0

@YogeshPatil是的。連同日期 – Yassi

+0

這裏是一個jsfiddle,應該給你一些正確的方向。 https://jsfiddle.net/2yt04ztr/13/ –

回答

0

所以這個的jsfiddle可以幫助您在正確的方向:JSFiddle

這種工作方式是因爲你能給排序依據指令謂詞的數組,就像你在你提供的例子一樣。在你的例子中,你只能使用字符串謂詞,而你也可以使用函數謂詞。函數謂詞將接收您要訂購的項目,並且您可以選擇想要返回的項目,以便角度可以使用該值來對該值進行排序。

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庫來更容易地處理日期。