Angular 角度2插值

Angular 角度2插值,angular,Angular,我试图通过插值从json中呈现不同的值,但出于某种原因,它只在迭代中起作用 例如: <ul> <li *ngFor="let object of objects"> {{object.title}} {{object.text}} </li> </ul> 获取此错误:原始异常:TypeError:无法读取未定义的属性“0” 知道为什么会这样吗 谢谢 我敢打赌,您最初没有为对象设置值。您的代码可能与此类似 @Compone

我试图通过插值从json中呈现不同的值,但出于某种原因,它只在迭代中起作用

例如:

<ul>
   <li *ngFor="let object of objects">
       {{object.title}} {{object.text}}
   </li>
</ul>
获取此错误:原始异常:TypeError:无法读取未定义的属性“0”

知道为什么会这样吗


谢谢

我敢打赌,您最初没有为
对象设置值。您的代码可能与此类似

@Component({
...
})
class MyComponent {
   objects;
   ngOnInit () {
       someHttpRequest().then((res) => objects = res);
   }
}
Angular将在组件加载后立即尝试插值
对象
,并且由于在此之后才给对象赋值,因此
对象[0]
实际上是未定义的

您可以通过两种方式解决此问题-可能最简单的方法就是将任何
对象[0]
引用包装到
*ngIf

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

{{对象[0].foo}

我敢打赌,您最初没有为
对象设置值。您的代码可能与此类似

@Component({
...
})
class MyComponent {
   objects;
   ngOnInit () {
       someHttpRequest().then((res) => objects = res);
   }
}
Angular将在组件加载后立即尝试插值
对象
,并且由于在此之后才给对象赋值,因此
对象[0]
实际上是未定义的

您可以通过两种方式解决此问题-可能最简单的方法就是将任何
对象[0]
引用包装到
*ngIf

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

{{对象[0].foo}

简单的答案是

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

简单的答案是

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

你能给我们看你的组件代码吗?你能给我们看你的组件代码吗?是的,我想问题是这样的,知道json响应来自外部api。但是正确的迭代渲染是非常错误的。。。我还是不明白那是怎么回事。如果对象是未定义的,那么它也应该在迭代中未定义。。。不管怎样,谢谢,效果很好!是的,我认为问题是这样的,因为知道json响应来自外部api。但是正确的迭代渲染是非常错误的。。。我还是不明白那是怎么回事。如果对象是未定义的,那么它也应该在迭代中未定义。。。不管怎样,谢谢,效果很好!