使用来自另一个文件的工厂时 angularjs 中的 unpr 错误
unpr error in angularjs while using factory from another file
你好,我有两个 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 控制台中的错误是
angular.js:14525 Error: [$injector:unpr] http://errors.angularjs.org/1.6.4/$injector/unpr?p0=%24scopeProvider%20%3C-%20%24scope%20%3C-%20webApi
你不能在 factory
/proider
/service
中注入 $scope
(通常在 none 的提供者风格中)。
$scope
可作为可注入控制器函数使用。由于控制器逻辑使用其 scope
.
绑定到特定模板
删除 $scope
会解决您的问题。
app.factory('webApi',function($http,$q){
你好,我有两个 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 控制台中的错误是
angular.js:14525 Error: [$injector:unpr] http://errors.angularjs.org/1.6.4/$injector/unpr?p0=%24scopeProvider%20%3C-%20%24scope%20%3C-%20webApi
你不能在 factory
/proider
/service
中注入 $scope
(通常在 none 的提供者风格中)。
$scope
可作为可注入控制器函数使用。由于控制器逻辑使用其 scope
.
删除 $scope
会解决您的问题。
app.factory('webApi',function($http,$q){