【问题标题】:retrieve json data using GET in angularjs在angularjs中使用GET检索json数据
【发布时间】:2015-07-14 13:41:14
【问题描述】:

我有一些数据存储在 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;
    }
]);

然后我尝试使用此控制器将该数据发送到要显示的适当 url,但它没有像我预期的那样工作。

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

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

【问题讨论】:

  • 你需要注入你新创建的工厂服务,即devices
  • 如果您使用ui-router resolve 为您的控制器提供该州自定义的内容或数据。在解析函数中使用@Alex 描述的服务,然后在控制器内部,您只需注入解析的名称,数据就可以使用了。

标签: json angularjs get http-request


【解决方案1】:

这是我目前在使用 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 获取

【讨论】:

    【解决方案2】:

    你应该将你的工厂注入你的控制器,像这样:

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

    【讨论】:

      【解决方案3】:

      您应该注入服务“设备”而不是其内部变量“国家/地区”。

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

      【讨论】:

      • 对不起,应该是国家。我发帖时出错。
      • 好的,你试过我的代码 sn-p 用“国家”而不是“设备”吗?您看到什么日志或结果以及预期结果是什么?
      猜你喜欢
      • 1970-01-01
      • 2013-01-06
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多