角度对象未定义

时间:2017-06-20 05:12:28

标签: angular object

在我的角度项目中,我有以下内容:

TS

this.storage.get(item_section).then((value) => {
    this.item= value;
    console.log(this.item); //The console log gives `["name","item","size"]`
    console.log(this.item[1]); //Gives `item` as the console log
});

HTML

<div class="something">{{item}}</div> //Displays "name,item,size"
<div class="something">{{item[1]}}</div> //Gets Undefined error

如果我可以定义this.item并获取{{item}}的结果,为什么我会为{{item[1]}}收到未定义的错误?

我对如何解决这个问题感到困惑

4 个答案:

答案 0 :(得分:2)

您的操作是异步的,因此您需要等待加载才能访问的第二个元素。您可以使用* ngIf来实现它。

<div class="something" *ngIf="item">{{item[1]}}</div> 

答案 1 :(得分:2)

只需添加'?'在您的数组项旁边,它应该可以正常工作。如果存在,请参阅安全导航操作员以显示数据。

答案 2 :(得分:1)

它应该适用于静态数据,它在这里工作正常。

检查 DEMO

或者,由于您的代码是异步的,您可以试试这个,

<div class="something">{{item && item[0]}}

答案 3 :(得分:1)

请在下面尝试:

<div class="something" *ngFor="let itm of item | async">{{itm}}</div>