2016-07-30 57 views
0

我試圖通過插值渲染json的不同值,但由於某種原因它只能在迭代中工作。角2插值

例如:

<ul> 
    <li *ngFor="let object of objects"> 
     {{object.title}} {{object.text}} 
    </li> 
</ul> 

這工作。

但每當我想不反覆它不工作訪問特定的值:

{{objects[0].title}} {{objects[0].text}} 

收到此錯誤:原來的異常:類型錯誤:無法讀取的不確定

任何財產「0」爲什麼發生這種情況?

謝謝!

+0

你能告訴我們你的組件碼? – micronyks

回答

0

我敢打賭,你最初並沒有設定objects的值。你的代碼可能看起來像這樣。

@Component({ 
... 
}) 
class MyComponent { 
    objects; 
    ngOnInit() { 
     someHttpRequest().then((res) => objects = res); 
    } 
} 

角將盡力盡快插值objects的部件載荷,既然你不給對象的值,直到後objects[0],事實上,不確定的。

您可以在幾個方面解決這個問題 - 可能是最簡單的只在一*ngIf

<div *ngIf="objects && objects.length > 0"> 
    {{objects[0].foo}} 
</div> 
+0

是的,我認爲問題是這樣的,知道json響應來自外部api。但是迭代的正確渲染非常令人迷惑......我仍然不明白這是如何工作的。如果對象未定義,它也應該在迭代中未定義... 無論如何,謝謝,它工作得很好! – cerealex

0

簡單的答案會是包裝任何object[0]參考,

{{Objects[0]?.title}} {{objects[0]?.text}}