Angular JS向控制器添加服务不起作用

时间:2015-07-14 03:33:06

标签: angularjs

我有这个:

.controller('dashboardCtrl', function($scope, $timeout, $location, bionicoService, bionicoSamples, $state, $locale){

一切正常,我可以毫无问题地将我的服务称为bionicoSamples 但我必须为i18n添加一个模块,它需要这个

.controller('dashboardCtrl', ['jlgI18nService', function( i18nService){

所以,当我把它添加到我的代码中时,我的服务停止工作,我不知道为什么,我是角色的新王,还有一些我不太了解的概念性东西,例如,我真的不明白使用" [' module',function()"到"功能('模块')"

尝试添加模块后的代码是lilke this:

.controller('dashboardCtrl', ['jlgI18nService', function($scope, $timeout, $location, bionicoService, bionicoSamples, $state, $locale, i18nService){

我也试过这个,但是也没有用呢

.controller('dashboardCtrl', ['jlgI18nService', '$scope', '$timeout', '$location', 'bionicoService',  '$state', '$locale', function($scope, $timeout, $location, bionicoService, bionicoSamples, $state, $locale, i18nService){

我得到的错误是我的服务未定义,如果我尝试调用bionicoSamples.function,它会说这个""功能""不是一个功能。 我知道问题在于我现在使用这个i18n模块导入服务和模块的方式,因为在它工作正常之前

谢谢!

1 个答案:

答案 0 :(得分:1)

使用'内联数组注释'时angular docs来声明控制器

  

使用此类注释时,请注意使注释数组与函数声明中的参数保持同步。

您注入服务的顺序是错误的,并且您的功能输入比注入服务更多。应该是这样的:

.controller('dashboardCtrl', [
    '$scope',
    '$timeout',
    '$location',
    'bionicoService', 
    'bionicoSamples', // This is missing in yours
    '$state',
    '$locale',
    'jlgI18nService',
    function($scope, $timeout, $location, bionicoService, bionicoSamples, $state, $locale, i18nService){