Как внедрить сервисы в RouteInitializerFn (новый DSL маршрутизации)
Я переключаю свое приложение на новый DSL маршрутизации. В частности, я хочу сделать что-то подобное сpreEnter
:
final RouteInitializerFn routes =(Router router, ViewFactory views) {
views.configure({
'chat': ngRoute(
path: '/chat',
// authService.requireState returns a Future<bool>, and may invoke an HttpRequest
preEnter: (RoutePreEnterEvent e) => e.allowEnter(authService.requireState(LOGGED_IN)),
view: 'views/chat.html'),
'login': ngRoute(
path: '',
defaultRoute: true,
view: 'views/login.html')
});
}
Это будет настроено в модуле следующим образом:
value(RouteInitializerFn, routes);
Если вы пропустили это, я ссылаюсь на инъекционныйauthService
в пределахRouteInitializerFn
, Это невозможно, так какRouteInitializerFn
это функция, а не класс, поэтому в нее ничего нельзя вставить. Если я инкапсулировалroutes
функция внутри класса, я не уверен, как я мог настроитьRouteInitializerFn
так что я в некотором затруднении.