如何使用angularjs中的$ resource从url获取JSON对象(作为'GET')

时间:2013-11-26 09:08:08

标签: javascript json web-services angularjs angularjs-service

我是angularjs的初学者,对网络服务也不了解。我的要求是这样的:

我必须从我的网址http://mylocalhostname.dev/users/list?city_id=12

中获取一个JSON对象

我绝对无能为力......请修改我的代码来帮助我。

提前致谢。这是我的JS代码:

'use strict';

var services = angular.module('services', ['ngResource']);

services.factory('dataFactory', ['$resource','$http', '$log',
        function ($resource, $http, $log) {
                return {
                    getAllUsers: function(){
                        return  $resource('http://mylocalhostname.dev/users/list',{city_id:12}
                            ,{
                                locate: {method: 'GET', isArray: true, transformResponse: $http.defaults.transformResponse.concat(function(data, headersGetter)
                                  $log.info(data.UsersList[0]);
                                  return data.UsersList[0].userName;
                                })}
                            }
                        );
                    }
                } 
    }]); 

当我测试时,我在控制台中收到此消息:

GET http://mylocalhostname.dev/users/list?city_id=12 200 OK 164ms angular.js(ligne 7772) (红色) (空字符串)

1 个答案:

答案 0 :(得分:2)

(我意识到这是一个古老的问题,但仍然没有答案,它出现在我刚刚做的搜索的顶部,所以希望这可以关闭那个特定的循环)

控制器从简单工厂检索数据的简单示例,其中工厂使用$ resource访问本地托管文件并将文件内容返回给控制器。

工厂:

'use strict';
angular.module('myApp')
  .factory('myFactory', ['$resource', function($resource) {
     return function(fileName){
       return $resource(fileName, {});
     };
  }]);

控制器:

'use strict';
var fileToGet = 'some/path/to/file.json';
angular.module('myApp')
    .controller('myController', function($scope, myFactory) {
   var getDefs = new myFactory(fileToGet).get(function(data) {
      $scope.wholeFile = data;
      // $scope.wholeFile should contain the entire JSON-formatted object

      $scope.someSection = data.section;
      // $scope.someSection should contain the "varX" and "varY" items now

      $scope.myStringX = JSON.stringify(data.section.varX);
      // get the stringified value 
   });
});

JSON格式的文件:

{
  "someVar": "xyz",
  "someArray": [
    {
      "element0A": "foo",
      "element0B": "bar"
    },
    {
      "element1A": "man",
      "element1B": "chu"
    }
  ],
  "section": {
     "varX": 0,
     "varY": "yyyy"
  }
}