ExistingProvider
Stable Interface
Что он делает
Настраивает Injector на возврат значения другого useExisting маркера.
Как использовать
const provider: ExistingProvider = {provide: 'someToken', useExisting: 'someOtherToken'};
Обзор интерфейса
interface ExistingProvider {
provide : any
useExisting : any
multi : boolean
}
Описание интерфейса
Для получения более подробной информации см. Руководство по инъекции зависимостей.
Пример
class Greeting {
salutation = 'Hello';
}
class FormalGreeting extends Greeting {
salutation = 'Greetings';
}
const injector = ReflectiveInjector.resolveAndCreate(
[FormalGreeting, {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));
Подробности интерфейса
provide : any
Маркер инъекции. (Обычно экземпляр Type или OpaqueToken, но может быть any).
useExisting : any
Существующий token для возврата. (эквивалентно injector.get(useExisting))
multi : boolean
Если true, то инжектор возвращает массив экземпляров. Это полезно для возможности множественных поставщиков, распределенных по многим файлам, предоставляющих конфигурационную информацию для общего маркера.
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']);
экспортировано из @angular/core/index, определено в @angular/core/src/di/provider.ts
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v2.angular.io/docs/ts/latest/api/core/index/ExistingProvider-interface.html