2016-10-10 74 views
2

在Angular2應用程序中,我想遍歷模板中的startDateendDate之間的所有天數。事情是這樣的:Angular2生成器函數

<div *ngFor="let date of dateRange(startDate,endDate)"> 
    {{date}} 
</div> 

我意識到,我可以預先計算所有這些日期並顯示它們之前在一個陣列存儲它們,但我寧願不佔用內存。我一直對JavaScript的generator functions閱讀起來,這似乎是在香草的JavaScript,我可以這樣做:

function* dateRange(start,end) { 
    let cur = start; 
    while (cur <= end) { 
     yield cur; 
     cur.setDate(cur.getDate() + 1); 
    } 
} 

有什麼辦法來使用這樣的發電機的功能,從可能被用在一個Angular2組件中模板迭代器?

回答

1

,我可以預先計算所有這些日期並顯示它們之前在一個陣列存儲它們,但我寧願不佔用內存

任何內存會比使用的內存少很多很多DOM與所有這些DOM元素。

我能想到的唯一解決方案是在使用ngFor之前將數組從生成器中取出,並且在那一點上爲什麼不只是使用數組。