1

これを機能させるのに苦労しています。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'
      }];
    }
}

4

1 に答える 1

2

getActionConts内で呼び出していません$onInit()。に変更this.getActionConsts.Aすると動作しますthis.getActionConsts().Athis.constructorまた、少しきれいな代わりにクラス名を使用することもできます。詳細を読みたい場合は、これらのドキュメントを使用しましたhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static

定数を扱うときは、宣言を使用してconst、クラスの外で定数を宣言します。Angular には、頭のてっぺんを思い出すことができない定数を定義するいくつかの凝った方法もあります。

于 2016-09-06T01:39:44.877 に答える