json - Angular6 JSON - 元素“......未定义”
问题描述
我为我的 Angular 6 应用程序创建了一个入门字典...
import { Injectable } from "@angular/core";
@Injectable()
export class Languages {
//template (in English)
public dialect = {
"Vocab": [{
"Pg1": {
"tag1": "my first string",
"tag2": "my second string",
"tag3": "my third string"
}
}, {
"Pg2": {
"tag1": "my fourth string",
"tag2": "my fifth string",
"tag3": "my sixth string"
}
}, {
"Pg3": {
"tag1": "my seventh string",
"tag2": "my eighth string",
"tag3": "my nineth string"
}
}, ]
}
}
当我在调用组件中键入它时...
console.log(this.languages.dialect.Vocab[0].Pg1.ta
...它会自动完成我为我选择的标签——在这种情况下,我选择“tag2”。所以我知道一切正常。当我运行应用程序时,控制台显示字符串“我的第二个字符串”。
都好
但是......当我回溯并输入“Vocab [0].Pg2.ta”时,它仍然会自动完成,但是当我选择 Pg1 以外的任何值时,我会收到以下错误......
ERROR TypeError: "this.languages.dialect.Vocab[0].Pg2 is undefined"
IDE 中没有显示错误,并且应用程序编译得很好。我究竟做错了什么?
解决方案
this.languages.dialect.Vocab[0].Pg2
必须是this.languages.dialect.Vocab[1].Pg2
。
您可以像这样重写代码以便于访问:
// this.languages.dialect.Vocab.Pg2
public dialect = {
"Vocab": {
"Pg1": {
"tag1": "my first string",
"tag2": "my second string",
"tag3": "my third string"
}, "Pg2": {
"tag1": "my fourth string",
"tag2": "my fifth string",
"tag3": "my sixth string"
}, "Pg3": {
"tag1": "my seventh string",
"tag2": "my eighth string",
"tag3": "my nineth string"
}
}
}
推荐阅读
- html - #app 在 HTML 代码中的 reactjs 中是什么意思?
- android - Android-JNI DETECTED ERROR IN APPLICATION 中 AndEngine GLES2 的 Proguard 问题
- python - 更改 for 循环的顺序会更改指数积
- c# - cluster.Connect 中的异常(
) 使用 CassandraCSharpDriver v3.9.0 - r - 选择输入和弹出窗口不起作用时,闪亮的应用程序与服务器断开连接
- c# - 如何在 .net 核心中使用 Linq 方法语法查询 Azure 存储表?
- r - R_NilValue的定义在哪里/TYPEOF(R_NilValue)返回值的保证是什么?
- node.js - 过滤 Sequelize belongsToMany
- mysql - 用于 AspNetCore MySql 连接的 MiniProfiler
- c# - C# winform 两个定时器访问同一个变量