通过将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"] | ^
那是实验性提议的语法。在Babel中,您必须启用es7.classProperties。通过
es7.classProperties
optional: ['es7.classProperties']
通天塔。确切的方法取决于您如何进行转译。
如果您想做标准的ES6,也可以做
static get $inject(){ return ["$scope", "$state", "$window"]; }