Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:[$injector:undef]提供程序'';必须从$get factory方法返回一个值_Javascript_Angularjs_Ionic - Fatal编程技术网

Javascript 错误:[$injector:undef]提供程序'';必须从$get factory方法返回一个值

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

我正在努力学习AngularJS。当我跟随老师的时候,我写了和他一样的代码。但是我得到一个
错误:[$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
进行解析的原因。请参阅更新的答案