是angularjs的新手。我正在尝试使用角度服务来发布数据,但是它会抛出错误
angular.js:12520错误:[$ injector:unpr]未知提供者:frontendServiceddProvider< - frontendServicedd< - CustSignupCtrl
service.js
Activity
customer_signup.js
app.service('frontendService', function frontendService ($http, $q, $rootScope){
var list = this;
list.registerCust = function(data){
var defer = $q.defer();
$http({
url: $rootScope.endPoint,
method: "POST",
data: data
})
.success(function(res){
console.log("Successfull!");
defer.resolve(res);
})
.error(function(err, status){
console.log("Failed !");
})
return defer.promise;
}
return list;
});
我已经在index.html中引用了两个js文件..没有得到错误的地方..任何人都可以帮助
答案 0 :(得分:2)
inject
无论你function
进入控制器,都应该采用相同的顺序。
删除<Modal />
内注入内容的引号。
答案 1 :(得分:2)
这可能是依赖注入不匹配类问题
当AngularJS在[]
例如,如果在js文件中声明一个函数,就像这样
var app = angular.module('app',[]);
app.controller('maincntrl',function($scope){
});
var search = function($scope,searchtext,searchfilters,searchareas)
{
return 'result'
}
console.log(angular.injector.annotate(search));
您将在控制台中获得的结果将是
["$scope","searchtext","searchfilters","searchareas"]
AngularJS将函数参数解析为数组
它遍历每个数组元素,当它看到"$scope"
时,它会将范围object
注入该位置
现在您使用的语法基本上用于minification
所以根据你的声明
app.controller('CustSignupCtrl', ['$scope','frontendService', '$filter','frontendService', '$http', 'editableOptions', 'editableThemes','notify','notification','$appConstants',
function('$scope', '$filter','frontendService', '$http','editableOptions', 'editableThemes','notify','notification','$appConstants'){
});
所以
$scope--> shall be injected into $scope
frontendService-->shall be injected into $filter
$filter--> shall be injected into frontendService
.
.
.
so on
此外,由于您已将function
参数声明为strings
,因此发生了错误(您在评论中提到),在这种情况下,依赖注入不会发生。修复这些问题将解决您的问题