Dart Documentationinjectable_applicationInjectableApplication

InjectableApplication abstract class

abstract class InjectableApplication {
 final Module module = new Module();
 final Module moduleRequestContext = new Module();

 Injector _injector;
 Injector get injector => _injector;

 void run() {
   module.value(InjectableApplication, this);
   module.value(this.runtimeType, this);

   _injector = new DynamicInjector(modules: [module]);

 }

 void prepareRequestModule(Module requestModule, request);

 Future runAction(InjectableController controller, Type actionType, request) {
   var requestModule = new Module();
   prepareRequestModule(requestModule, request);

   var requestContextInjector = injector.createChild(
       controller.module == null ?
           [requestModule, moduleRequestContext]
           : [requestModule, controller.module, moduleRequestContext]
   );

   InjectableAction action = requestContextInjector.get(actionType);
   return action.apply(this, request);
 }

}

Properties

final Injector injector #

Injector get injector => _injector;

final Module module #

final Module module = new Module()

final Module moduleRequestContext #

final Module moduleRequestContext = new Module()

Methods

abstract void prepareRequestModule(Module requestModule, request) #

void run() #

void run() {
 module.value(InjectableApplication, this);
 module.value(this.runtimeType, this);

 _injector = new DynamicInjector(modules: [module]);

}

Future runAction(InjectableController controller, Type actionType, request) #

Future runAction(InjectableController controller, Type actionType, request) {
 var requestModule = new Module();
 prepareRequestModule(requestModule, request);

 var requestContextInjector = injector.createChild(
     controller.module == null ?
         [requestModule, moduleRequestContext]
         : [requestModule, controller.module, moduleRequestContext]
 );

 InjectableAction action = requestContextInjector.get(actionType);
 return action.apply(this, request);
}