我正在尝试读取在我的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>
。
答案 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 }}