2016-12-01 71 views
1

我是新來的前端開發人員和Angular2。Angular2使用日期管道進行日期排列

我正在寫一個應用程序,我給了fromDate和endDate,並且該應用程序需要顯示日期範圍。例如,fromDate = '10/02/2016' endDate = '11/02/2016',該應用將顯示2016年2月10日至11日的日期範圍,並且此日期範圍格式可能會在將來發生變化(當然,還需要考慮月數或年數不同的情況)。

我的想法是用鏈接管道:{{ dateArray | date: 'dd/MM/yyyy' | rangeDate}}其中dateArray = [fromDate, endDate]我希望{{ dateArray | date: 'dd/MM/yyyy'}}可以返回兩種格式的日期字符串(數組中的),所以我就可以用我的自定義管道創建:

import {Pipe, PipeTransform} from '@angular/core'; 

@Pipe({name: 'dateRange'}) 
export class DateRangePipe implements PipeTransform { 
    transform(value: string[], args: any[]) { 
    return "desired output"; 
    } 
} 

輕鬆用兩個字符串操縱兩個得到所需的輸出。

但是,這是錯誤的,因爲Angular 2日期管道不能將多個日期值傳輸到字符串,它的返回類型是string而不是string[]

所以我想知道是否有辦法在HTML中編寫一個for-loop-like的東西來實現這個任務。比如,它需要一個date[],並將其每個項目發送到日期管道,並將結果合併到一個string[]並將其發送到dateRange管道。

回答

1

date管道不會幫你在這裏,因爲:a)因爲你已經計算出日期管道不會將數組作爲輸入; b)你有特殊的要求把兩個日期翻譯成實際上是他們表示的混合部分,日期管不知道如何去做。 你需要實現你自己的dateRange管道(你正在嘗試的類型),這將需要一個日期數組併產生單個字符串格式化爲你希望的輸出。