0

我有一个服务器端 REST api,它可以返回具有任意结构的 jsonyfied 数据。在客户端,我有一个 Angular 应用程序。

资源定义:

module.factory('SearchQueries', function ($resource){          
   return $resource('/instances/searches/:_id', {_id: '@_id'}); 
})                                                             

在我尝试从我的 api 获取数据后:

$scope.search_queries = SearchQueries.query(null, function(args){  
  console.log('success: ', args);                                  
  for (i in args) {                                                
  }                                                                
}); 

客户端接收具有某种结构的数据:

{"2": "serfgserg", "3": "sdfgdfg", "4": "sdgdfhdfghfgh", "5": "sdgdfhdfghfgh"}

但!在 Angular 资源的成功函数中,数据的每个符号都是一个元素对象的值。

[{"0":"s","1":"e","2":"r","3":"f","4":"g",ETC

为什么要完成?如何预防或正确使用?

编辑:

如果我从服务器返回一个数组:

res = json.dumps(["sdf", "asdf", "asdf"])                             
return Response(response=res, mimetype='application/json',
        status=status)

没关系,我有相同的结果:

[{"0":"s"},{"0":"d"},{"0":"f"},{"0":"a"},{"0":"s"},{"0":"d"},{"0":"f"} // e.t.c     
4

1 回答 1

1

这是因为query需要一个对象数组,而不是一个对象 - 请参阅ngResource 文档

'查询':{方法:'GET',isArray:true}

期望类似:

[{"name":"sdf"}, {"name":"asdf"}, {"name":"asd"}]
于 2013-04-18T22:30:24.220 回答