Angular ReferenceError:未定义响应

Angular ReferenceError: response is not defined

本文关键字:响应 未定义 ReferenceError Angular      更新时间:2024-03-26

我是Angular的新手,我正在做一些测试,但在本教程中遇到了困难,它说:angular.min.js:116 ReferenceError:响应不在onUserComplete

    var app = angular.module('example', []);
    var mainController = function($scope, $http){
        var onUserComplete = function($scope){
            $scope.user = response.data;
        }
        var onError= function(reason){
            $scope.error = "Could not fetch data";
        }
        $scope.search = function(username){
            $http.get("https://api.github.com/users/"+username)
            .then(onUserComplete, onError);
            $scope.username = "angular";
            $scope.message = "Hello World"
        }
    }
    app.controller('mainController', mainController);

谢谢!!!

这里没有将$scope作为函数中的参数发送的意义,即使在教程之后也要尽量避免这样做

我认为教程希望您在中将$scope更改为response

var onUserComplete = function(response){
    $scope.user = response.data;
}

在这里,您将响应的数据分配给scope.user,您可以在$scope可以gp 的任何地方使用它

当您仔细查看时,函数onUserComplete()正在使用response变量,但无论如何都没有收到该变量。你需要把它传进来。

正如Daniel所建议的,修正是将函数参数更改为response(这是函数将从$http对象接收的内容。

    var app = angular.module('example', []);
    var mainController = function($scope, $http){
        var onUserComplete = function(response){
            $scope.user = response.data;
        }
        var onError= function(reason){
            $scope.error = "Could not fetch data";
        }
        $scope.search = function(username){
            $http.get("https://api.github.com/users/"+username)
            .then(onUserComplete, onError);
            $scope.username = "angular";
            $scope.message = "Hello World"
        }
    }
    app.controller('mainController', mainController);