Configures the Injector to return a value by invoking a useFactory function.
属性 属性名 类型 说明 provideanyAn injection token. (Typically an instance of Type or InjectionToken , but can be any).
multibooleanIf 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']);