in AngularDart how to register a PreEnter event to a route which needs to use a service method?

angular-dart, dart

Solution

You can use the following technique: functions can be implemented as classes with the 'call' method.

@Injectable()
class MyRouteInitializer implements Function {
  AuthService service;

  MyRouteInitializer(this.service);
  call(Router router, RouteViewFactory viewFactory) {
     ...
     service._checkAuthentication();
     ...
  }
}

Function registration in the module:

 this.bind(RouteInitializerFn, toImplementation: MyRouteInitializer);

Problem

After all the deprecation in AngularDart , now configuring routes via the below initRoutes method inside my modules constructor. ``` //inside the main of the appliction .. this.bind(RouteInitializerFn, toValue:initRoutes); this.bind(NgRoutingUsePushState, toFactory:(_) => new NgRoutingUsePushState.value(false)); //in routeconfig.dart file which is imported in the main.dart void initRoutes(Router router, RouteViewFactory viewFactory) { viewFactory.configure({ 'loginPage': ngRoute( path: '/loginPage', view: 'view/loginPage.html'), 'landingPage': ngRoute( path: '/landingPage', view: 'view/landingPage.html', defaultRoute: true, enter: _checkAuthentication ... ``` My question is how to inject the Service class which has the _checkAuthentication method in routeconfig.dart ? Since it's not a class how can get the dependency injection here ? or is there another way to initialize and register the RouteInitializerFn in the Module contructor ?

Original source