angularjs – 如何$注入Angular类w/ES6

前端之家收集整理的这篇文章主要介绍了angularjs – 如何$注入Angular类w/ES6前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用Angular 1.4和ES6 / 7以及Babel,我可以在类块之后使用此代码将参数成功注入到名为Controller的类中:
class Controller {
    constructor($scope,$state,$window) {...}
    ...
}
Controller.$inject = ["$scope","$state","$window"]

但是,在构造函数的正上方看到注入参数会更清晰.我见过其他人使用静态$inject,但是我收到了一个错误.这是我正在尝试的:

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

为什么会导致此错误?它似乎适用于其他人.

Unexpected token (2:11)
  1 | class Controller {
  2 |     static $inject = ["$scope","$window"]
    |  
              ^
这是一个实验性的提议语法.在Babel中,您必须启用es7.classProperties.通过
optional: ['es7.classProperties']

巴贝尔确切的方法取决于您的转换方式.

如果你想做标准的ES6,你也可以这样做

static get $inject(){ return ["$scope","$window"]; }

猜你在找的Angularjs相关文章