Javascript 错误:[$injector:undef]提供程序'';必须从$get factory方法返回一个值
我正在努力学习AngularJS。当我跟随老师的时候,我写了和他一样的代码。但是我得到一个Javascript 错误:[$injector:undef]提供程序'';必须从$get factory方法返回一个值,javascript,angularjs,ionic,Javascript,Angularjs,Ionic,我正在努力学习AngularJS。当我跟随老师的时候,我写了和他一样的代码。但是我得到一个错误:[$injector:undef]提供程序'eliteApi'必须从$get factory方法返回一个值。。当我在web中搜索这个错误时,它告诉我必须返回一个函数或对象。我想我正在做。我的工厂声明如下: angular.module(“eliteApp”、[“ionic”]) .factory('eliteApi',function(){ 函数eliteApi(){ var leagues=JSO
错误:[$injector:undef]提供程序'eliteApi'必须从$get factory方法返回一个值。
。当我在web中搜索这个错误时,它告诉我必须返回一个函数或对象。我想我正在做。我的工厂声明如下:
angular.module(“eliteApp”、[“ionic”])
.factory('eliteApi',function(){
函数eliteApi(){
var leagues=JSON.parse(““名称”:“2014春游锦标赛”,“id”:2009,”主屏幕):“*五年级锦标赛-7:30m MAC 3\n*六年级锦标赛-6:30pm MAC 4\n*七年级白人锦标赛-7:30pm MAC 4\n*七年级绿色锦标赛-7:30pm MAC 2\n*八年级锦标赛-7:30pm MAC 1\n*九年级锦标赛-8:30pm MAC 4\n*十年级锦标赛-8:30pm MAC 1\n*十一年级锦标赛-8:30pm MAC 3”rulesScreen“:null');
函数getLeagues(){
返回联盟;
}
返回{
getLeagues:getLeagues
};
};
})
.controller('LeagueCtrl',['$scope','eliteApi',函数($scope,eliteApi){
职能联盟Ctrl(精英联盟){
var vm=这个;
var leagues=eliteApi.getLeagues();
};
}])
将您的工厂更改为:
.factory('eliteApi', [function() {
return {
getLeagues : function(){
var leagues = JSON.parse({"name": "Spring Fling Tournament 2014","id": 2009,"homeScreen": "* 5th Grade Championship - 7:30m MAC 3\n* 6th Grade Championship - 6:30pm MAC 4\n* 7th Grade White Championship - 7:30pm MAC 4\n* 7th Grade Green Championship - 7:30pm MAC 2\n* 8th Grade Championship - 7:30pm MAC 1\n* 9th Grade Championship - 8:30pm MAC 4\n* 10th Grade Championship - 8:30pm MAC 1\n* 11th Grade Championship - 8:30pm MAC 3","rulesScreen": null});
return leagues;
}
}
}])
看看这是否有效
更新
您的变量league
不是正确的JSON
。请将其更改为
var leagues = JSON.parse({"name": "Spring Fling Tournament 2014","id": 2009,"homeScreen": "* 5th Grade Championship - 7:30m MAC 3\n* 6th Grade Championship - 6:30pm MAC 4\n* 7th Grade White Championship - 7:30pm MAC 4\n* 7th Grade Green Championship - 7:30pm MAC 2\n* 8th Grade Championship - 7:30pm MAC 1\n* 9th Grade Championship - 8:30pm MAC 4\n* 10th Grade Championship - 8:30pm MAC 1\n* 11th Grade Championship - 8:30pm MAC 3","rulesScreen": null});
您忘记了{}
。同时删除引号
@Sourabh-
谢谢你的帮助,
这就是解决方案:
.factory('eliteApi',function(){
var leagues1=JSON.stringify({“name”:“2014春游锦标赛”,“id”:2009”,“主屏幕”:”*5年级锦标赛-7:30米MAC 3\n*6年级锦标赛-6:30米MAC 4\n*7年级白人锦标赛-7:30米MAC 4\n*7年级绿色锦标赛-7:30米MAC 2\n*8年级锦标赛-7:30米MAC 1\n*9年级锦标赛-8:30米MAC 4\n*10年级锦标赛-8:30米MAC 1\n*11年级锦标赛-8:30米MAC 3“rulesScreen“:null});
var leagues=JSON.parse(leagues1);
返回{
getLeagues:函数getLeagues(){
返回联盟;
}
};
})
.controller('LeagueCtrl',['$scope','eliteApi',函数($scope,eliteApi){
var leagues=eliteApi.getLeagues();
var leagueData=eliteApi.getLeaguedata();
})
谢谢,您的解决方案可以工作,但仅当我更改var-leagues=“hello”时,但当我执行var-leagues=JSON.parse(…)时,它会给出SyntaxError:Unexpected token:at Object.parse(native)@halloasdeutschland。这就是您使用的JSON.parse
进行解析的原因。请参阅更新的答案