Configures the Injector
to return a value by invoking a useFactory
function.
属性 属性名 类型 说明 provideany
An injection token. (Typically an instance of Type
or InjectionToken
, but can be any
).
multiboolean
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 const Location = new InjectionToken ('location '); const Hash = new InjectionToken ('hash '); const injector = Injector.create([ {provide: Location , useValue: 'http://angular.io/#someLocation'}, { provide: Hash, useFactory: (location : string) => location.split('#')[1], deps : [Location ] } ]); expect(injector.get(Hash)).toEqual('someLocation'); Dependencies can also be marked as optional:
const Location = new InjectionToken ('location '); const Hash = new InjectionToken ('hash '); const injector = Injector.create([{ provide: Hash, useFactory: (location : string) => `Hash for: ${location }`, // use a nested array to define metadata for dependencies. deps : [[new Optional (), Location ]] }]); expect(injector.get(Hash)).toEqual('Hash for: null'); 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']);