在角度1.5控制器的es6类中定义常量

时间:2016-09-06 00:58:32

标签: javascript ecmascript-6 constants angularjs-1.5 es6-class

我正在努力让这个工作。我知道静态变量不能在ES 6格式的类中声明。如何在类中声明常量并在类本身内访问它

这就是我所拥有的。我试图在$ onINit时访问常量的构造函数值。我确实看到this.constructor.Consts有正确的值。但是,当我尝试使用this.getActionConsts.A访问它们时,它不存在。

任何线索?

或者有更好的方法来定义常量



class ActionCtrl {

    constructor($scope) {
      this.$scope = $scope;
    }

    static get Consts() {
      return {
        A: '5010',
        B: '5020',
        C: '5030'
      };
    }

    getActionConsts() {
      return this.constructor.Consts;
    }

    $onInit() {
      this.Actions = [{
        'id': this.getActionConsts.A,
        'title': '1'
      }, {
        'id': this.getActionConsts.B,
        'title': '1'
      }];
    }
}




1 个答案:

答案 0 :(得分:2)

您未在getActionConts内拨打$onInit()。将this.getActionConsts.A更改为this.getActionConsts().A时,它会有效。您也可以使用类名而不是this.constructor更清洁一点。如果您想阅读更多https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static

,我会使用这些文档

当我使用常量时,我​​只使用const声明并在类之外声明我的常量。 Angular有一些奇特的方法来定义常量,我无法回想起我的头脑。