使用angularjs中的GET检索json数据

时间:2015-07-14 13:41:14

标签: json angularjs get http-request

我有一些存储在nosql数据库中的数据,我可以在访问localhost:3000 / countries时看到。

我正在尝试使用这个工厂来获取json中的数据。

.factory('countries', ['$http', '$q',
    function($http, $q) {


    var countries = {
                get: function() {
                    return $q(function(resolve, reject) {
                        $http({
                            method: 'GET',
                            url: '/countries'
                        }).then(function(response) {

                            resolve(response.data);
                        }, function(error) {

                            reject(error);
                        });
                    });
                };

   return countries;
    }
]);

然后我尝试使用此控制器将该数据发送到要显示的相应网址,但它无法正常工作。

.controller('CountriesCtrl', function($scope, countries) {
    console.log(countries);
    countries.get(function(countries) {
        $scope.countries = countries;
    });
})

有什么想法或建议吗?谢谢!

3 个答案:

答案 0 :(得分:0)

这是我目前在使用Mongodb的项目中使用的

cmsApp.factory("tasks", ["$resource", function($resource) {
  return $resource("/tasks/", {}, {
    save: {
      method: 'POST',
      isArray: true
    },
    'delete': {
      method: 'DELETE',
      isArray: true
    }
  });
}]);

然后在Controller中(确保将其注入控制器!):

$scope.tasks = tasks.query();

.query()选择所有数据,而.get()由Id

启动

答案 1 :(得分:0)

您应该将工厂注入控制器,如下所示:

.controller('CountriesCtrl', function($scope, devices) {
    console.log(countries);
    countries.get(function(data) {
        $scope.data = data;
    });
})

答案 2 :(得分:0)

您应该注入服务'设备'而不是它的内部变量'国家'。

.controller('CountriesCtrl', function($scope, devices) {
    console.log(devices);
    devices.get().then(function(countries) {
        $scope.countries = countries;
    });
});