Я создаю диалоговый сервис. Диалог может иметь контроллер, очень похожий на $mdDialog, например:
myDialogService.show({
templateUrl: `<div ng-click="$ctrl.log()">Hello dialog</div>`,
controller: function() {
this.log = function() {
console.log("logged from myDialogController");
}
}
});
который прекрасно работает. Я вызываю контроллер таким образом:
locals.$scope = scope;
const invokeController = $controller(options.controller, locals, true);
const controller = invokeController();
if (options.controllerAs) {
scope[options.controllerAs] = controller;
} else {
const controllerAs = "$ctrl";
scope[controllerAs] = controller;
}
В angular-mock есть служба $componentController, которая может вызывать контроллеры компонентов. С моим кодом я могу вызывать только зарегистрированные контроллеры или заданные функции контроллера. Это не очень полезно, так как у меня зарегистрированы только компоненты, а не отдельные контроллеры.
Мой вопрос
Возможно/рекомендуется ли использовать $componentController в рабочей среде? Или есть ли какая-либо сборка AngularJS в варианте, который я наблюдал?