2017-02-27 31 views
0

我正面临着下面的代码问题。它在控制台中显示$ http undefined。我注入了$范围和$ HTTP以及

SignInCtrl.$inject = ['$scope', '$http']; 
function SignInCtrl($scope,$http) { 
$scope.login = function($http) { 
return $http.post('/user/login', user).then(handleSuccess, handleError('Error creating user')); 

}; 
} 
+0

从功能删除$ HTTP参数$ HTTP。 –

回答

4

通过

$scope.login = function() 

呼叫者更换

$scope.login = function($http) 

没有通过$ http服务作为参数。它被注入到控制器中。所以你的函数声明隐藏了(未定义的)一个(不)作为参数传入的$ http。

-1
/**@inject*/ 
function SignInCtrl($scope,$http) { 
    $scope.login = function() { 
     return $http.post('/user/login', user).then(handleSuccess, handleError('Error creating user')); 
    }; 
} 

使用/ ** * @ngInject/u能注入所有依赖你没有写像(SignInCtrl $注射= '$范围', '$ HTTP']。)所有的依赖;

在$ scope.login功能你逝去的不要求你注入已经

+0

虽然此代码可能会回答问题,但提供有关如何解决问题和/或为何解决问题的其他上下文会提高答案的长期价值。 –

+0

感谢您的建议 –