Ошибка при использовании классов ES6 с услугами angular/контроллерами

Я хочу использовать классы ES6 в приложении Angular и пытаюсь использовать его следующим образом:

'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

Ответ 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);
}]);

Как сообщает об ошибке, необходимо вернуть "новый". Таким образом, инъекция также будет работать. Приветствия.

Ответ 2

Это работает:

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