Ошибка при использовании классов 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())