【问题标题】:Inject module into controller AngularJs将模块注入控制器AngularJs
【发布时间】:2016-04-29 15:47:14
【问题描述】:

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

应用模块:

(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

【问题讨论】:

    标签: javascript angularjs dependency-injection


    【解决方案1】:

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

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

    【讨论】:

    • 不要忘记批准好的答案,尤其是当它显然是正确的答案,而其他人无法做出更好的答案时。
    猜你喜欢
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2017-06-14
    相关资源
    最近更新 更多