从mongoDB读取环境变量时,“无法读取未定义的属性'0'”

时间:2019-06-26 08:01:02

标签: html angular mongodb

我正在尝试读取在我的JavaScript中定义的变量。这是来自mongoDB的获取请求。然后,整个数据库存储在一个变量下,并由HTML读取并显示。

来自MongoDB的get请求具有如下输出: (假设它存储在变量.unique()下):

database

我的HTML看起来像这样:

[
  {
      0:
           {
                TITLE1: valueone
           }
  },
  {
      1:
           {
                TITLE2: valuetwo
           }
  }
]

我收到错误<p> {{ database?.TITLE1 }} </p> 。我了解这是因为我需要定义Cannot read property '0' of undefined才能读取[0]

基于此,我尝试了以下操作:

TITLE1

此错误:<p> {{ database?[0].TITLE1 }} </p>

Template parse errors:
Parser Error: Conditional expression database?[0].TITLE1 requires all 3 expressions at the end of the expression [{{ database?[0].TITLE1 }}]

此错误:<p> {{ database?.[0].TITLE1 }} </p>

Template parse errors:
Parser Error: Unexpected token [, expected identifier or keyword at column 7 in [{{ database?.[0].TITLE1 }}]

这与上面的错误相同。

读取我所追求的值的正确方法是什么?在HTML中,输出应为<p> {{ database?.0.TITLE1 }} </p>

3 个答案:

答案 0 :(得分:0)

尝试

 <p> {{ database[0]['0']?.TITLE1 }} </p>

通过以下方式动态地进行操作:

    <p *ngFor="let item of database; let i = index">
       {{item[i]['TITLE' + (i + 1)]}}
    </p>

答案 1 :(得分:0)

我的意思是,在某些时候,您必须对JS基础进行一些思考,而不是尝试一切直到它起作用为止...

根据您提供的代码,语法应为

{{ data[0]['0'].TITLE1 }}

答案 2 :(得分:0)

因为您的数据库是数组,所以需要使用[0]来获取第一项,而密钥是数字,因此您需要使用['0']来获取属性值,也可以使用?在使用null

之前检查对象TITLE1

最后您可以使用{{ database[0]['0']?.TITLE1 }}

演示https://stackblitz.com/edit/angular-o79rra