2016-07-30 52 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}}