![](/img/trans.png)
[英]Provider 'xx' 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.
。 當我在網絡中搜索此錯誤時,會告訴我必須返回一個函數或一個對象。 我想我在做。 我的工廠聲明如下:
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;
}
}
}])
看看這是否有效。
UPDATE
你的變量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(); })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.