Have a perfectly serviceable module system and an injector into which you can register constants, and using which you can inject functions and constructors.
Issue Checklist
[ ] How the angular global variable and its module method come to be.
[ ] How modules can be registered.
[ ] That the angular global will only ever be registered once per window, but any given module can be overridden by a later registration with the same name.
[ ] How previously registered modules can be looked up.
[ ] How an injector comes to be.
[ ] How the injector is given names of modules to instantiate, which it will look up from the angular global.
[ ] How application component registrations in modules are queued up and only instantiated when the injector loads the module.
[ ] How modules can require other modules and that the required modules are loaded first by the injector.
[ ] That the injector loads each module only once to prevent unnecessary work and problems with circular requires.
[ ] How the injector can be used to invoke a function and how it can look up its arguments from its $inject annotation.
[ ] How the injected function’s this keyword can be bound by supplying it to injector.invoke.
[ ] How a function’s dependencies can be overridden or augmented by supplying a locals object to injector.invoke.
[ ] How array–wrapper style function annotation works.
[ ] How function dependencies can be looked up from the function’s source code.
[ ] How strict DI mode helps make sure you’re not accidentally using non–annotated dependency injection when you don’t mean to.
[ ] How the dependencies of any given function can be extracted using injector.annotate.
[ ] How objects can be instantiated with dependency injection using injector.instantiate.
Description
Have a perfectly serviceable module system and an injector into which you can register constants, and using which you can inject functions and constructors.
Issue Checklist
angular
global variable and itsmodule
method come to be.angular
global will only ever be registered once per window, but any given module can be overridden by a later registration with the same name.angular
global.$inject
annotation.this
keyword can be bound by supplying it toinjector.invoke
.injector.invoke
.injector.annotate
.injector.instantiate
.All issues in milestone: 0.4.0 milestone
Assignees