Angular2无法显示json响应
在angular 2模板中,我无法显示json响应中的数据:Angular2无法显示json响应,json,angular,Json,Angular,在angular 2模板中,我无法显示json响应中的数据: { "success": true, "data": { "id": 5, "user_id": 1, "category_id": 1, "title": "ghfjhgf", "body": "jhgfjhgf", "created": "2017-01-19T18:22:02+00:00", "modified": "2017-01-19T18:22:02+00:0
{
"success": true,
"data": {
"id": 5,
"user_id": 1,
"category_id": 1,
"title": "ghfjhgf",
"body": "jhgfjhgf",
"created": "2017-01-19T18:22:02+00:00",
"modified": "2017-01-19T18:22:02+00:00",
"file": null,
"column_9": null,
"category": {
"id": 1,
"name": "Running",
"body": "Regroupe toutes les traces relative à la course à pied."
},
"user": {
"id": 1,
"email": "user@local.ch",
"username": "user",
"role": "user",
"active": true,
"created": "2017-01-15T16:21:44+00:00",
"modified": "2017-01-15T16:21:44+00:00"
}
}
}
当我尝试使用track.success
时,没有问题,它显示为true,但当我尝试使用以下任一项显示数据id时:
track.data.id
track['data'].id
track['data']['id']
我有一个未定义的属性。我需要帮助。提前谢谢
这是{{track | json}的输出
{
"success": true,
"data": {
"id": 6,
"user_id": 1,
"category_id": 1,
"title": "dsfasd",
"body": "afdasf",
"created": "2017-01-19T18:27:26+00:00",
"modified": "2017-01-19T18:27:26+00:00",
"file": null,
"column_9": null,
"category": {
"id": 1,
"name": "Running",
"body": "Regroupe toutes les traces relative à la course à pied."
},
"user": {
"id": 1,
"email": "user@local.ch",
"username": "user",
"role": "user",
"active": true,
"created": "2017-01-15T16:21:44+00:00",
"modified": "2017-01-15T16:21:44+00:00"
}
}
这是我的服务:
view(id):Observable<any> {
return this.http.get('http://cake/api/tracks/' + id + '.json')
.map(response => response.json());
}
当您想要显示对象的内部属性时,应该使用安全导航(Elvis)操作符
track['data']?.id
track?.data?.id
或者使用json管道以json格式显示所有数据
track?.data | json
track | json
在ui上执行
{{track | json}}
并粘贴它返回的内容。您的track
可能包含对旧对象的引用,但您的json已填充到新对象中。检查逻辑track=myJson;myJson=newJson
,您的曲目将无法播放sync@VSO谢谢你的回答,我用输出编辑了我的帖子。@quepasso谢谢你的更新。您确定在尝试记录数据时数据可用吗?如果您执行{{track.data | json}},是否返回?如果是这样,那么我猜您的问题与异步有关。您的数据是否回到了可观察(或承诺)状态?如果是这样的话,您是在尝试从下一个回调函数获取它,还是在尝试从下一个回调函数获取它?还请发布您试图在javascript/typescript中使用data.id的代码片段。@VSO感谢您花时间回答我的问题。它与track['data']?.id和track?.data?.id配合使用很好。谢谢你@你能详细说明一下吗?我以为?
是用于数据可能不可用的时候?很明显,如果你的答案是正确的,但你是怎么做到的?向上投票。当然我想解释一下,但现在我躺在床上,不能打字了。所以最好通过链接,如果你仍然不明白,请告诉我。很乐意在anser中添加解释,谢谢;)@PankajParkar我理解文档,只是重新阅读了它们-我不明白为什么它解决了这个问题-他发布的对象确实有一个id值,那么这有什么帮助?不管怎样,我稍后会问一个问题。我明白你的意思。你说的是。。。可能是OP所做的事情,最初他有track={}
,所以当他做{{track.success}}
时,当初始倒角检测运行时,它并没有失败,当对象gort填充时,它显示的是真值。
track?.data | json
track | json