2016-02-03 4 views
1

Я пытаюсь разделить мой угловой код на фабрики, поэтому мои контроллеры не становятся недостижимыми. В частности, на моей фабрике я буду размещать код, который будет использоваться для нескольких контроллеров.Угловая - проблема с вводом фабрики в контроллер

Проблема в том, что я не могу ввести завод в контроллер, независимо от того, что я делаю.

Вот моя фабрика

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

Это потому, что ваш завод не имеет возвращаемого значения. Попробуйте 'return {colors: ['# FF0000', '# 660000', '# FF3300', '# FF9900', '# 003300', '# 000033', '# 660033', '# FF0033', '# 383838 '];} ' – Oliver

+0

Заводы должны иметь оператор возврата? Я понятия не имел об этом. Вы проверите это –

ответ

1

Угловой завод должен иметь результат возврата.

Синтаксис: module.factory ('factoryName', function);

Результат: При объявлении factoryName в качестве аргумента для инъекции вам будет предоставлено значение, возвращаемое вызовом ссылки на функцию, переданной 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

+0

Это действительно очень помогло мне. У меня много головных болей. –

+0

Добро пожаловать! –

Смежные вопросы