AngularJS在表中显示JSON数据

时间:2014-11-21 06:59:22

标签: json angularjs

我正在使用AngularJS和RESTAPI,我能够以JSON格式获取从服务器发送的客户数据。我的Angular代码段如下:

  app.factory("services", ['$http', function($http) {
  var serviceBase = '/api/album';
    var obj = {};
    obj.getCustomers = function(){
        return $http.get(serviceBase);
    };
    return obj;   
}]);
    app.controller('listCtrl', function ($scope, services) {
services.getCustomers().then(function(data){
    alert(JSON.stringify(data.data));
    $scope.customers = data.data;
    });
});

这是我的JSON数据:

{
"data": [
    {
        "id": "1",
        "artist": "Gotye75",
        "title": "Making  Mirrors7"
    },
    {
        "id": "100",
        "artist": "ytttt5",
        "title": "1231"
    },
    {
        "id": "101",
        "artist": "65",
        "title": "565444555"
    },
    {
        "id": "102",
        "artist": "6",
        "title": "6"
    },
    {
        "id": "103",
        "artist": "y",
        "title": "yy"
    },
    {
        "id": "104",
        "artist": "ty",
        "title": "yt"
    },
    {
        "id": "109",
        "artist": "ytrer",
        "title": "yt"
    }
    ]
}

如果我的JSON不包含“数据”,我可以在表中显示JSON数据。但是,如果我的jSON数据带有“data”标头,则无法显示。我在问,Angular中解析JSON对象的解决方案是什么。

例如,如果它在BackboneJS中,我可以简单地执行

    parse: function (response) {
    //alert(JSON.stringify(response.data));
    return response.data;
}

我如何在Angular中做到这一点?

2 个答案:

答案 0 :(得分:3)

$http使用响应对象解析其承诺。通过响应对象的data属性访问数据。所以要到达阵列,你必须使用

$scope.customers = data.data.data;
使用$http便捷方法增强了

.success()的承诺,该方法可以解开响应对象...

services.getCustomers().success(function(data){
    alert(JSON.stringify(data.data));
    $scope.customers = data.data;
});

答案 1 :(得分:1)

我通过

解决了这个问题
app.controller('listCtrl', function ($scope, services) {
    services.getCustomers().then(function(data){
    //notice that i added the third data
    $scope.customers = data.data.data;
    }); 
});