ExistingProvider

Configures the Injector to return a value of another useExisting token.

interface ExistingProvider extends ExistingSansProvider { provide: any multi?: boolean }

说明

For more details, see the "Dependency Injection Guide".

属性

属性名类型说明
provide

An injection token. (Typically an instance of Type or InjectionToken, but can be any).

multi

If true, then 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.

使用说明

Example

class Greeting { salutation = 'Hello'; } class FormalGreeting extends Greeting { salutation = 'Greetings'; } const injector = Injector.create([ {provide: FormalGreeting, deps: []}, {provide: Greeting, useExisting: FormalGreeting} ]); expect(injector.get(Greeting).salutation).toEqual('Greetings'); expect(injector.get(FormalGreeting).salutation).toEqual('Greetings'); expect(injector.get(FormalGreeting)).toBe(injector.get(Greeting));

Multi-value example

const locale = new InjectionToken<string[]>('locale'); const injector = Injector.create([ {provide: locale, multi: true, useValue: 'en'}, {provide: locale, multi: true, useValue: 'sk'}, ]); const locales: string[] = injector.get(locale); expect(locales).toEqual(['en', 'sk']);