当API返回一个对象时,AngularJS ng repeater无法正确读取json

当API返回一个对象时,AngularJS ng repeater无法正确读取json,json,api,parsing,angularjs-ng-repeat,response,Json,Api,Parsing,Angularjs Ng Repeat,Response,我正在学习angularjs和web.api v2 并使用以下代码调用简单API以获取联系人列表: $scope.GetAllContacts = function () { $http.get('http://localhost:50820/api/contacts'). success(function (data, status, headers, config) { $scope.contacts = data; // OUT PUT

我正在学习angularjsweb.api v2 并使用以下代码调用简单API以获取联系人列表:

   $scope.GetAllContacts = function () {
    $http.get('http://localhost:50820/api/contacts').
    success(function (data, status, headers, config) {
        $scope.contacts = data;
        // OUT PUT WILL BE [{contact1},{contact2},....]
    }).
    error(function (data, status, headers, config) {
        alert("couldn't get contacts.");
    });
  }
每个联系人对象都有(ID、姓名、姓氏、电子邮件)

这是我的HTML页面


{{contact.Id}
{{contact.Name}
{{contact.LastName}
{{contact.Email}

我认为您可以在success函数中检查从web服务收到的响应数据

console.log(data);
如果以以下格式打印,则
ng repeater
将能够找到单个对象

[{"Id":1,"Name":"James","LastName":"Oliver","Email":"james.oliver@gmail.com"}]
但如果您收到如下数据

{"Id":1,"Name":"James","LastName":"Oliver","Email":"james.oliver@gmail.com"}
然后,
ng repeater
将无法找到它(可能是您应该检查您的服务器端)


看,我在

上做了一个快速测试,发现了问题,我有两种不同的方法

    GetAllContacts()  //returns a collection of contacts
    GetContact(int id) // return a single contact object
在fiddler中,两个响应都正常,因为它们被检测为JSON对象,但Ng Repeater将单个对象作为JSON with 4对象(因为4属性),而不是将其视为一个对象

因此,我所做的是将单个contact对象放在一个集合中,并将结果作为只包含一条记录的集合返回。它解决了这个问题