javascript - Angular js - json 上的简单循环不起作用

标签 javascript json angularjs for-loop

这是我的简单代码:

app.js中:

$http.get($rootScope.config.app_ws+'jsons/json.json').success(function(response) {
            $rootScope.config.app_genres =  response;
        });

json.json:

{ 
    "genres":{  

                "Ambient":{},
                "Alternative":{},
                "Blues":{},
                "Chillout":{},
                "Classical":{},
                "Country":{},
                "Dance":{},
                "Dubstep":{},
                "Electronic":{},
                "Folk":{},
                "Grunge":{},
                "Hip Hop":{},
                "House":{},
                "Indie":{},
                "Jazz":{},
                "Latin":{},
                "Metal":{},
                "Opera":{},
                "Pop":{},
                "Punk":{},
                "R&B":{},
                "Reggae":{},
                "Rock":{},
                "Ska":{},
                "Soul":{},
                "Vocal":{},
                "Funk":{},
                "Lounge":{},
                "Geek":{}
    }
}

HTML:

<div ng-repeat="i in config.app_genres.genres">
<span class="span3x3" ng-if="$first"><a href="">Others</a></span>
<span class="span3x3"><a href="">{{i}}</a></span>
<div class="row-fluid" ng-if="($index%3) == 1"></div>

我只是尝试在 html 中列出所有 json 流派名称,例如 Alternative、Ambient、Pop、Rock 等,但实际上它会打印 {}流派名称。

发生了什么事?

最佳答案

Genres 是一个对象,而不是数组。这意味着它没有元素列表,而是(键,值)对列表。在您的情况下,键是流派的名称,值是空对象。

发生的情况是 ng-repeat 默认情况下会迭代这些值。所以你有几个选择:

如果您只需要流派名称,请尝试使用 JSON 数组:

{
    "Genres": [
        "Pop",
        "Rock",
        ...
        "Jazz"
    ]
}

如果您需要更多详细信息,请迭代键和值:

<div ng-repeat="(genre, details) in config.app_genres.genres">

使用如下 JSON:

{
    "Genres": {
        "Jazz": {
            "songs": 50
        },
        "Pop": {
            ...
        }
    }
}

关于javascript - Angular js - json 上的简单循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21354119/

相关文章:

javascript - 在 Firefox Addon SDK 中存储/访问简单变量

java - 如何解决使用@JsonTypeInfo时两次添加type属性的问题

python - JSON解码错误: Extra data: line 1 column 228 (char 227)

angularjs - ngModel 更新后 ngRepeat orderBy update

javascript - 删除 Angular 中同一类的多个元素但保留第一个

javascript - 如何在按键事件后获得 jQuery .val()?

javascript - 图像和按钮的悬停效果

json - 如何在 GraphQL 中返回一个 json 字符串作为响应

javascript - 获取 iframe 中元素的 Y 位置

javascript - 无法在文本换行并移动到下一行的文本区域内换行