角度响应未定义

时间:2017-12-05 15:24:41

标签: angularjs

尝试使用角度来检索json:" https://api.github.com/users/angular",更准确地说是来自该json的id属性。 关于为什么失败的任何想法(在调试模式中我得到了

  

'响应未定义'

):

<html ng-app="myViewer">
<head>
<script data-require="angular.js@*" data-semver="1.2.25" src="https://code.angularjs.org/1.2.25/angular.js"></script>
</head>


<body ng-controller="MyController">
    {{ result.id }}
    {{ err }}
</body>

<script type="text/javascript">
(function() {

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

    var MyController = function($scope, $http)
    {
        $http.get("https://api.github.com/users/angular")
        .then(function1, onerr);

        var function1 = function(response)
        {
            $scope.result = response.data;
        }
        var onerr = function(reason)
        {
            $scope.err = "nightmare";
        }

    }

    app.controller("MyController", ["$scope", "$http", MyController]);
}());

</script>
</html>

我希望结果是您在浏览器中复制该链接时可以看到的ID。

5 个答案:

答案 0 :(得分:2)

这是一个有效的提琴手 https://jsfiddle.net/paka2/8roj37q9/1/

angular.module("myViewer", []).controller("myCtrl", function($scope,$http){
this.result = {};
this.err ;  
         $http.get("https://api.github.com/users/angular")
        .then(function1, onerr) ;
    function function1 (response)
    {    
      $scope.result = response.data;
    }
    function onerr (reason)
    {
      $scope.err = "nightmare";
    }
});

希望它有所帮助!!

答案 1 :(得分:1)

如果我更正订单,则有效:

var function1 = function(response)
{
    $scope.result = response.data;
}
var onerr = function(reason)
{
    $scope.err = "nightmare";
}

$http.get("https://api.github.com/users/angular")
.then(function1, onerr);

在我用它调用之前应该定义function1。

答案 2 :(得分:0)

我认为你的承诺是错误的。

  $http.get('https://api.github.com/users/angular').then(function(response){
    $scope.result = response.data;
  })

请参阅下面的相同HTTP调用:

https://plnkr.co/edit/8JqZ5NukHnHWGPxZ0GRr

答案 3 :(得分:0)

尝试这个我认为你错误地将控制器定义为mycontroller,它应该是SecondController。

  match goal with
  | [ |- context[C (@B ?x _)] ]
    => setoid_rewrite (Rewrite x)
  end.

答案 4 :(得分:0)

尝试使用以下

var function1 = function(response){$ scope.result = response; }