Stable Interface
What it does
Configures the Injector
to return an instance of useClass
for a token.
How to use
1 2 3 4 | @Injectable() class MyService {} const provider: ClassProvider = {provide: 'someToken' , useClass: MyService}; |
Interface Overview
1 2 3 4 5 | interface ClassProvider { provide : any useClass : Type<any> multi : boolean } |
Interface Description
For more details, see the Dependency Injection Guide.
Example
1 2 3 4 5 6 7 8 9 10 11 | abstract class Shape { name: string; } class Square extends Shape { name = 'square' ; } const injector = ReflectiveInjector.resolveAndCreate([{provide: Shape, useClass: Square}]); const shape: Shape = injector.get(Shape); expect(shape.name).toEqual( 'square' ); expect(shape instanceof Square).toBe( true ); |
Note that following two providers are not equal:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Greeting { salutation = 'Hello' ; } class FormalGreeting extends Greeting { salutation = 'Greetings' ; } const injector = ReflectiveInjector.resolveAndCreate( [FormalGreeting, {provide: Greeting, useClass: FormalGreeting}]); // The injector returns different instances. // See: {provide: ?, useExisting: ?} if you want the same instance. expect(injector.get(FormalGreeting)).not.toBe(injector.get(Greeting)); |
Interface Details
provide : any
An injection token. (Typically an instance of Type
or OpaqueToken
, but can be any
).
useClass : Type<any>
Class to instantiate for the token
.
multi : boolean
If true, than injector returns an array of instances. This is useful to allow multiple providers spread across many files to provide configuration information to a common token.
1 2 3 4 5 6 7 | const injector = ReflectiveInjector.resolveAndCreate([ {provide: 'local' , multi: true , useValue: 'en' }, {provide: 'local' , multi: true , useValue: 'sk' }, ]); const locales: string[] = injector.get( 'local' ); expect(locales).toEqual([ 'en' , 'sk' ]); |
exported from @angular/core/index, defined in @angular/core/src/di/provider.ts
Please login to continue.