Error: [$injector:undef] Provider '' must return a value from $get factory method
Error: [$injector:undef] Provider '' must return a value from $get factory method
我正在努力学习AngularJS。当我跟着导师的时候,我写了和他一样的代码。但是我得到了 Error: [$injector:undef] Provider 'eliteApi' must return a value from $get factory method.
。当我在网络上搜索这个错误时,它被告知我必须 return 一个函数或一个对象。我想我正在做。我的工厂声明如下:
angular.module("eliteApp",["ionic"])
.factory('eliteApi', function() {
function eliteApi(){
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');
function getLeagues(){
return leagues;
}
return {
getLeagues : getLeagues
};
};
})
.controller('LeaguesCtrl', [ '$scope','eliteApi', function($scope, eliteApi) {
function LeaguesCtrl(eliteApi){
var vm = this ;
var leagues = eliteApi.getLeagues();
};
}])
感谢任何帮助...
将您的 factory
更改为:
.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": "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});
var leagues = JSON.parse(leagues1);
return {
getLeagues : function getLeagues(){
return leagues;
}
};
})
.controller('LeaguesCtrl', [ '$scope','eliteApi', function($scope, eliteApi) {
var leagues = eliteApi.getLeagues();
var leagueData = eliteApi.getLeaguesData();
})
我正在努力学习AngularJS。当我跟着导师的时候,我写了和他一样的代码。但是我得到了 Error: [$injector:undef] Provider 'eliteApi' must return a value from $get factory method.
。当我在网络上搜索这个错误时,它被告知我必须 return 一个函数或一个对象。我想我正在做。我的工厂声明如下:
angular.module("eliteApp",["ionic"])
.factory('eliteApi', function() {
function eliteApi(){
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');
function getLeagues(){
return leagues;
}
return {
getLeagues : getLeagues
};
};
})
.controller('LeaguesCtrl', [ '$scope','eliteApi', function($scope, eliteApi) {
function LeaguesCtrl(eliteApi){
var vm = this ;
var leagues = eliteApi.getLeagues();
};
}])
感谢任何帮助...
将您的 factory
更改为:
.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": "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});
var leagues = JSON.parse(leagues1);
return {
getLeagues : function getLeagues(){
return leagues;
}
};
})
.controller('LeaguesCtrl', [ '$scope','eliteApi', function($scope, eliteApi) {
var leagues = eliteApi.getLeagues();
var leagueData = eliteApi.getLeaguesData();
})