将ES6类与角度服务/控制器一起使用时出错

时间:2015-10-21 22:59:29

标签: angularjs ecmascript-6

我想在Angular应用程序中使用ES6类并试图像这样使用它:

'use strict';

class EditorCtrl{
    constructor(){
        this.something = "ASd";
    }
    foo(){

    }
}
angular.module('Editor').controller('EditorCtrl', EditorCtrl);

但由于某种原因,此代码会给我一个错误:Class constructors cannot be invoked without 'new'。为什么会发生这种情况以及如何解决这个问题?

Angular:1.4.7 Chrome:46.0​​.2490.71

2 个答案:

答案 0 :(得分:1)

'use strict';

class EditorCtrl{
    constructor($scope){
        this.something = "ASd";
    }
    foo(){

    }
}
// Use this instead.
angular.module('Editor').controller('EditorCtrl', ['$scope', function($scope) {
    return new EditorCtrl($scope);
}]);

由于错误通知必须返回'new'。这样注射也会起作用。 欢呼声。

答案 1 :(得分:0)

这似乎有效:

angular
  .module('Editor')
  .controller('EditorCtrl', () => new EditorCtrl())