我收到以下错误:
Error: [$injector:unpr] Unknown provider: myServiceProvider <- myService
在angularjs中调用服务时请帮我解决这个问题
var app = angular.module('app', [])
app.controller('myController', ['$scope', 'stringService', function ($scope, stringService) {
$scope.output = stringService.processString(input);
}]);
var app = angular.module('app', []);
app.factory('stringService', function(){
return{
processString: function(input){
if(!input){
return input;
}
var output = "";
for(var i = 0; i < input.length; i++){
if(i > 0 && input[i] == input[i].toUpperCase()){
output = output + " ";
}
output = output + input[i];
}
return output;
}
}
});
答案 0 :(得分:0)
在:
['$scope', 'myService', function ($scope, stringService)
您正在注射不存在的myService
。所以,改为:
['$scope', 'stringService', function ($scope, stringService)
答案 1 :(得分:0)
您将工厂定义为stringService
,但是您尝试将其注入myService
,如果您按照以下方式执行此操作:
app.controller('myController', ['$scope', 'stringService', function ($scope, stringService) {
$scope.output = stringService.processString(input);
}]);
答案 2 :(得分:0)
将您的第二个模块行更改为:
var app = angular.module('app');
如果传递2个参数,则定义一个新模块。如果传递一个参数,那么它会进行模块查找。
您应该定义一次模块。
答案 3 :(得分:0)
你的代码定义了两个app app app,myService不存在,应该改为stringService, 我认为你的代码应该是这样的:
var app = angular.module('app', []);
app.factory('stringService', function(){
return{
processString: function(input){
if(!input){
return input;
}
var output = "";
for(var i = 0; i < input.length; i++){
if(i > 0 && input[i] == input[i].toUpperCase()){
output = output + " ";
}
output = output + input[i];
}
return output;
}
}
});
app.controller('myController',
['$scope', 'stringService', function ($scope, stringService) {
$scope.output = stringService.processString(input);
}]);