一尘不染

如何在带有ES6的Angular类中注入$

angularjs

通过将Angular 1.4与ES6 / 7和Babel结合使用,我可以在类块之后使用以下代码将参数成功地注入到名为Controller的类中:

class Controller {
    constructor($scope, $state, $window) {...}
    ...
}
Controller.$inject = ["$scope", "$state", "$window"]

但是,在构造函数上方看到inject参数会更干净。我见过其他人使用静态$ inject,但出现错误。这是我正在尝试的:

class Controller {
    static $inject = ["$scope", "$state", "$window"]
    constructor($scope, $state, $window) {...}
    ...
}

为什么会导致此错误?它似乎为其他人工作。

Unexpected token (2:11)
  1 | class Controller {
  2 |     static $inject = ["$scope", "$state", "$window"]
    |  
              ^

阅读 268

收藏
2020-07-04

共1个答案

一尘不染

那是实验性提议的语法。在Babel中,您必须启用es7.classProperties。通过

optional: ['es7.classProperties']

通天塔。确切的方法取决于您如何进行转译。

如果您想做标准的ES6,也可以做

static get $inject(){ return ["$scope", "$state", "$window"]; }
2020-07-04