javascript 如何从 AngularJS 模板中的嵌套 JSON 数组中获取值?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/22590184/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to get value from a nested JSON array in AngularJS template?
提问by vita
I have some JSON data below:
我在下面有一些 JSON 数据:
{
"tracks": [
{
"album": {
"released": "2013",
"href": "spotify:album:3qGeRY1wt4rrLIt1YuSwHR",
"name": "The Marshall Mathers LP2 (Deluxe)",
"availability": {
"territories": "AD AR AT AU BE BG BO BR CH CL CO CR CY CZ DE DK DO EC EE ES FI FR GB GR GT HK HN HR HU IE IS IT LI LT LU LV MC MT MY NI NL NO NZ PA PE PH PL PT PY RO SE SG SI SK SV TR TW UY"
}
},
"name": "The Monster",
"popularity": "0.94",
"external-ids": [
{
"type": "isrc",
"id": "USUM71314082" <-- I want this value
}
],
"length": 250.188,
"href": "spotify:track:5U8hKxSaDXB8cVeLFQjvwx",
"artists": [
{
"href": "spotify:artist:7dGJo4pcD2V6oG8kP0tJRR",
"name": "Eminem"
},
{
"href": "spotify:artist:5pKCCKE2ajJHZ9KAiaK11H",
"name": "Rihanna"
}
],
"track-number": "12"
},
...
]}
I am able to take out other values like album name, release date etc, but not the external-ids id. these are the two ways i have tried in my angular template:
我能够取出其他值,如专辑名称、发行日期等,但不能取出外部 ID。这是我在我的 angular 模板中尝试过的两种方法:
<div class="panel panel-success" ng-repeat="track in something.tracks">
<p>Track name: {{ track.name }}</p>
<p>Album release date: {{ track.album.released }}</p>
<p>Spotify id: {{track.external-ids[0].id}} </p>
<!-- <span ng-repeat="obj in track.external-ids">
<p>Spotify id: {{ obj.id }}</p>
</span> -->
</div>
those are the two solutions i came up with but neither seem to work. The first one (not commented out) returns 0, the second one doesn't display the "spotify id:" line at all.
这是我想出的两种解决方案,但似乎都不起作用。第一个(未注释掉)返回 0,第二个根本不显示“spotify id:”行。
Does anybody know how to do this? it seems pretty straightforward but i just cant seem to get my head around it. Thanks.
有人知道怎么做这个吗?这看起来很简单,但我似乎无法理解它。谢谢。
采纳答案by tasseKATT
To access a property that contains a dash you need to use the bracket notation:
要访问包含破折号的属性,您需要使用括号表示法:
<p>Spotify id: {{track['external-ids'][0].id}} </p>
Otherwise the parser will interpret is as the subtraction operator:
否则解析器将解释为减法运算符:
track.external - ids[0].id