Angular 2 useExisting providers
для чего используютсяuseExisting
провайдер?
это useExistingOrThrowIfThereIsNone
или useExistingOrCreateIfThereIsNone
? Может ли одно из этих видов поведения быть выбрано намеренно, в зависимости от наших потребностей? Если один из них не поддерживается, можно ли эмулировать неподдерживаемый?
документация совершенно неясна на этом и просто дает пример того, что useExisting
можно повторно использовать экземпляр из useClass
.
1 ответов
в этом примере
providers: [
A,
{provide: B, useClass: A},
{provide: C, useExisting: A}]
если у вас
constructor(private a: A)
создается экземпляр для первого поставщика.
constructor(private b: B)
создается экземпляр для 2-го провайдера
constructor(private c: C)
вводится экземпляр первого поставщика.
если вы начинаете с
constructor(private c: C)
создается и вводится экземпляр для первого поставщика