从另一个文件使用factory时,angularjs中的unpr错误

时间:2017-11-25 11:59:24

标签: angularjs angular-factory

您好我有两个angularjs文件第一个是控制器,第二个是工厂函数但是它给出了一个unpr错误

工厂文件

var app = angular.module('basicApi',[]);
app.factory('webApi',function($http,$q,$scope){
    return {
        login : function(data){
            return $http.post('/user/login',data)
            .then(function(res) {
                if(res.status === '403'){
                   return $q.reject("Invalid credentials");
                }
            })
            .catch(function(err){
                return $q.defer('Cannot make API Call');
            })
        }
    }
});

控制器文件是

angular.module('App',["basicApi"])

.controller('registerController',["$scope","webApi",
function($http,$scope,$window,webApi){
//login function 
$scope.login = function() {
    var data = {
        email: $scope.email,
        password: $scope.password
    }
    webApi.login(data)
    .then(function(res){
        // flash message or err message in front end
    },function(err){
        //err message 
    })
}

}])

我已经将这两个文件添加到我的html中,两者都正常运行 控制台中的角度误差

angular.js:14525 Error: [$injector:unpr] http://errors.angularjs.org/1.6.4/$injector/unpr?p0=%24scopeProvider%20%3C-%20%24scope%20%3C-%20webApi

1 个答案:

答案 0 :(得分:3)

您无法在$scope / factory / proider内注入service(通常不会提供任何提供者口味)。

$scope可用作控制器功能中的可注射。由于控制器逻辑使用scope绑定到特定模板。

删除$scope会解决您的问题。

app.factory('webApi',function($http,$q){