将模块注入控制器AngularJs

时间:2016-04-29 15:47:14

标签: javascript angularjs dependency-injection

我有两个AngularJs模块,一个是我的app,另一个是常量列表。我想将常量模块注入我的app模块并使用控制器内的常量。我已经能够在工厂内实现这一点,但我无法在我的控制器中访问我的常量。

app模块:

(function() {
    'use strict';

    angular.module('myapp', [
            'constants',
            'ngMaterial',
            'ngCordova',
            'ngStorage',
            'relativeDate',
            'ui.router',
            'myapp.services.myservice'
            ])

常数模块:

angular.module('constants', [])

.constant('appName', 'mynewapp');

在我可以访问常量的工厂中:

(function() {
    'use strict';

    angular.module('myapp.services.myservice', [])

        .factory('Myservice', function ($http, appName) {
           console.log(appName); //works great!

我无法访问常量的控制器

(function() {
    'use strict';

    angular.module('myapp')
        .controller('MyController', [
            '$cordovaOauth',
            '$state',
            '$rootScope',
            'Myservice',
            MyController
        ]);

    function MyController($cordovaOauth, $state, $rootScope, Myservice, appName ) {
            console.log(appName); //undefined

1 个答案:

答案 0 :(得分:3)

您忘记为appName常量声明依赖注入令牌:

.controller('MyController', [
    '$cordovaOauth',
    '$state',
    '$rootScope',
    'Myservice',
    'appName',  // <---- don't forget me
    MyController
]);