我试图将我的角度代码分成工厂,因此我的控制器不会变得无法维护。具体来说,在我的工厂中,我将包含将在多个控制器之间共享的代码。
问题是,无论我做什么,我都无法将工厂注入我的控制器。
这是我的工厂
angular.module('my-app')
.factory('Game', function() {
var colors = ['#FF0000', '#660000', '#FF3300', '#FF9900', '#003300',
'#000033', '#660033', '#FF0033', '#383838'];
});
这是我的控制器
angular.module('my-app')
.controller('gamesController', ['$scope', '$interval', 'Game',
function($scope, $interval, Game) {
这是我的装货单
<script src='scripts/app.js'></script>
<script src='scripts/services/game.js'></script>
<script src='scripts/controllers/navController.js'></script>
<script src='scripts/controllers/gamesController.js'></script>
我得到undefined provider
,我无法弄清楚问题出在哪里。
答案 0 :(得分:1)
Angular Factory必须有返回结果。
语法:module.factory('factoryName',function);
结果:当将factoryName声明为injectable参数时,将为您提供通过调用传递给module.factory的函数引用返回的值。
你的工厂应该是这样的:
angular.module('my-app')
.factory('Game', function() {
return { colors : ['#FF0000', '#660000', '#FF3300', '#FF9900', '#003300',
'#000033', '#660033', '#FF0033', '#383838']
}
});
如果您想了解更多详情,请访问AngularJS: Service vs provider vs factory