如何将常量注入指令的控制器?

时间:2015-06-18 00:57:15

标签: angularjs dependency-injection

我是依赖注射的新手,遇到过一些我无法理解的事情。我有一个常量位于一个单独的文件中,需要将它注入到我的指令的同一个文件中,以便在指令的控制器中使用。我不确定应该在哪里注入常数:在控制器或指令中?这是我的文件类似的一些示例代码。

第一档:

angular.module('utilities')
    .constant('myOpts', {
        ...stuff
    });

第二档:

angular.module('main')
.directive('myDirective', function() {
    return {
        controller: function () {
            ... need the constant in here
        }
    }
});

谢谢!

1 个答案:

答案 0 :(得分:2)

您需要将其注入.directive函数。

你可以通过在函数语句周围放置方括号(这样你传递的是数组而不是单个函数),然后在函数前添加常量的字符串表示,然后添加它作为你职能的一个参数。

模块文件:

angular.module('utilities')
    .constant('myOpts', {
        'stuff1': 'Stuff 1 Value',
        'stuff2': 'Stuff 2 Value'
    });

指令文件:

angular.module('main')
.directive('myDirective', ['myOpts', function(myOpts) {
    return {
        controller: function () {
            alert(myOpts.stuff1);
            alert(myOpts.stuff2);
        }
    }
}]);