Как аннотировать зависимости во встроенном контроллере при настройке маршрутов приложений?

Я получаю следующую ошибку, если не аннотирую зависимости встроенной функции контроллера для маршрута (я использую строгий режим DI, и все остальные коды аннотируются, чтобы js-минификация не нарушала мой код):

https://docs.angularjs.org/error/$injector/strictdi?p0=function(AuthService ,%20$состояние

Вот код маршрута выхода:

app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider', '$urlRouterProvider) {

  $stateProvider.state('logout', {
     url: '/logout',
     controller: function(AuthService, $state) {        
       AuthService.logout();
       $state.go('login');
     }
  }

}]);

Есть ли способ объявить встроенную аннотацию для двух вышеупомянутых зависимых служб (AuthService, $state) встроенного контроллера?

Я знаю следующий обходной путь:

.state('logout', {
    url: '/logout',
    controller: LogoutController
});


function LogoutController (AuthService, $state) {        
    AuthService.logout();
    $state.go('login');
}
LogoutController.$inject = ['AuthService', '$state'];

это работает, но просто хотел проверить, знает ли кто-нибудь какой-нибудь умный ярлык?


person Tushar    schedule 06.06.2016    source источник


Ответы (2)


Пытаться

app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
  $stateProvider.state('logout', {
     url: '/logout',
     controller: ['AuthService', '$state', function(AuthService, $state) {        
       AuthService.logout();
       $state.go('login');
     }]
  }
}]);

Не уверен, что это сработает. Обычно мы разделяем наши контроллеры на файлы для простоты использования, а не прописываем их в файле config.route.js.

person rrd    schedule 06.06.2016
comment
Это сработало ! Большое спасибо :) Не пробовал, так как думал, что это будет синтаксис массива, а не функция. Вы правы в том, что контроллеры разнесены по отдельным файлам, но здесь у меня просто две строчки логики, поэтому я решил не создавать накладные расходы на обработку другого файла. - person Tushar; 06.06.2016
comment
Рад, что помог! - person rrd; 06.06.2016
comment
Да, это наверняка поможет и многим другим. Еще раз спасибо за ваше время. - person Tushar; 06.06.2016