javascript - 如何从 AngularJS 模板中的嵌套 JSON 数组中获取值?

标签 javascript json angularjs angularjs-ng-repeat

我在下面有一些 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"
    },
    ...
]}

我可以取出专辑名称、发行日期等其他值,但不能取出外部 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>

这是我想出的两个解决方案,但似乎都不起作用。第一个(未注释掉)返回 0,第二个根本不显示“spotify id:”行。

有人知道怎么做吗?这看起来很简单,但我似乎无法理解它。谢谢。

最佳答案

要访问包含破折号的属性,您需要使用括号表示法:

<p>Spotify id: {{track['external-ids'][0].id}} </p>

否则解析器会将 is 解释为减法运算符:

track.external - ids[0].id

演示: http://plnkr.co/edit/gIyXg8y0Pn1TuK0uI6qD?p=preview

关于javascript - 如何从 AngularJS 模板中的嵌套 JSON 数组中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22590184/

相关文章:

json - 从types.JSON.TEXT转换为字符串列表

javascript - 我的 AngularJS Spinner 指令失败

angularjs - 在 AngularJS 中使用 ng-repeat 过滤结果 6 到 10(共 100 个)

javascript - 在 Javascript ES6 中使用 Chai(或 Should)断言数组(使用 Babel)

javascript - LoginToken 和 Session 的区别? node.js 快速连接

javascript - 如何将页面上的所有电话号码更改为可点击的链接,不包括特定分类的元素

jquery - 从动态列表创建 JSON 对象

javascript - 如何在不同的 ReactJS 组件实例中拥有不同的数据?

Java/Scala - 将 xml 转换为 json

javascript - AngularJS:为什么我不能在我的 View 中注入(inject)html?