2016-11-25 14 views
1

讓我使問題更具體一點 - 我可以在ngFor返回值的情況下綁定:如何將Object方法的返回值綁定到Angular 2中的DOM?

<select id="addTimeslotSelect" style="height:24px; background-color:rgb(235, 235, 228);" disabled> 
    <option *ngFor="let day of days" data-value="{{day}}" data-label="{{day.toDateString()}}"></option> 
</select> 

day.toDateString()工作正常。但是,當我想訪問ngFor以外的特定索引時,我似乎無法使其工作。

<input id="addTimeslotTextbox" data-value="{{days[days.length-1].toLocaleDateString()}}" type="text" disabled/> 

days [days.length-1] .toLocaleDateString()在這裏不起作用。我得到以下錯誤:「無法讀取屬性'toLocaleDateString'未定義」

好奇,如果任何人有洞察力,爲什麼它在前一種情況下,而不是後者。

+1

試試? '{{天[days.length-1] ?. toLocaleDateString()}}'。可能當視圖初始化天數組是undefined – masimplo

+0

我一直在尋找提供一個默認以及顯示除了空白之外的東西,如果解決需要一些時間或永遠不會發生,如「...」或什麼的,我認爲這作品(我對「安全導航」操作員還是有點新的): {{myObj?.value || '...'}} –

回答

4

由於初始變化檢測days陣列沒有intialize。所以你應該在這裏使用Navigation operatorElvis operator)。使用Elvis操作符

data-value="{{days[days.length-1]?.toLocaleDateString()}}" 
相關問題