【问题标题】:Inject factory in Angular 1.x.x ES6在 Angular 1.x.x ES6 中注入工厂
【发布时间】:2016-02-17 08:57:37
【问题描述】:

我正在使用 Angular 1.x.x 和 ES6 语法。

我有一个这样的控制器:

    class BuilderController {  

        constructor(Auth) {
            this.foo = 'bar';
        }    

        create() {
            console.log(Auth); //this is undefined    
        }       
    }

    angular.module('myapp')
        .controller('BuilderCtrl', BuilderController);

我正在尝试将 Auth 工厂注入我的控制器,但如果我在我的 create() 方法中控制台登录 Auth,它是未定义的。

有人可以向我解释如何在 Angular 控制器(类)中正确注入工厂吗?

【问题讨论】:

    标签: javascript angularjs ecmascript-6


    【解决方案1】:

    您应该将其用作带有关键字this 的全局属性:

    class BuilderController {  
    
        constructor(Auth = "default") {
            this.foo = 'bar';
            this.Auth = Auth;
        }    
    
        create() {
            console.log(this.Auth); //if Auth is undefined then "default" gets logged.    
        }       
    }
    

    【讨论】:

    • 谢谢,我自己想通了。
    • @Hiero 没问题!很高兴你在这里。
    猜你喜欢
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2015-07-11
    • 1970-01-01
    相关资源
    最近更新 更多