Angular http json请求问题

时间:2015-02-02 19:35:53

标签: javascript json angularjs angularjs-directive angularjs-http

您好我有一个简单的问题,但我遇到了问题。我编辑了一些我在网上找到的代码。我试图利用Angular http服务来检索JSON数据,但它似乎没有工作

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

app.controller('MainCtrl', function($scope, $http) {

  $http.get('https://www.dropbox.com/s/325d678ksplb7qs/names.json')
    sucess(function(data, status, headers, config) {
      $scope.posts = data;
  }).
  error(function(data, status, headers, config) {
      // log error
  });

});

我的代码示例如下

http://codepen.io/jimmyt1001/pen/dPVveN

3 个答案:

答案 0 :(得分:1)

<强> TL;博士

应该是这样的:

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

app.controller('MainCtrl', function($scope, $http)
{
    $http.get('https://www.dropbox.com/s/325d678ksplb7qs/names.json')
        .success(function(data, status, headers, config)
        {
            $scope.posts = data;
        })
        .error(function(data, status, headers, config)
        {
            // log error
        });
});

即。您在.之前错过了一个点(success)而您的success输入错误(您键入sucess)。

<强>原始

您的代码应如下所示:

// Simple GET request example :
$http.get('/someUrl').
    success(function(data, status, headers, config) {
    // this callback will be called asynchronously
    // when the response is available
}).
error(function(data, status, headers, config) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
});

docs中所述。

你的是这样的:

$http.get('https://www.dropbox.com/s/325d678ksplb7qs/names.json')
   sucess(function(data, status, headers, config) {

如果你在成功之前错过了一个点(。),你的成功拼写错误(你的成功)。

复制现有的演示,直到您确定它们是如何设置的,这是不错的做法。此外,使用您的开发人员工具来捕获这样的简单错误。

您的Dropbox调用也可能无效,但如果您相应地修改了代码,那么错误方法应该能够捕获它并且您应该能够看到错误。

答案 1 :(得分:1)

拼写错误sucess应为success

<强> CODE

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

app.controller('MainCtrl', function($scope, $http) {

  $http.get('https://www.dropbox.com/s/325d678ksplb7qs/names.json')
    .success(function(data, status, headers, config) {
      $scope.posts = data;
  }).
  error(function(data, status, headers, config) {
      // log error
  });

});

答案 2 :(得分:1)

您应该使用服务:

json.service('getJson', ['$http', function ($http) {
        var promise = null;
        //return service
        return function () {
            if (promise) {
                return promise;
            } else {
                promise = $http.get('url');
                return promise;
            }
        };

    }]);

    function MainCtrl($scope, getJson) {

        getJson().success(function (data) {
            $scope.json = data;

        });

    };

请记住在控制器中注入服务名称。