Можно ли получить идентификатор экземпляра для службы?
Я использую сервис для нескольких компонентов, каждый из которых предоставляется компоненту в своем массиве провайдеров.
Мне любопытно посмотреть, какие компоненты используют какие экземпляры службы, так как я провожу некоторые эксперименты, которые включают их передачу.
Есть ли какой-нибудь встроенный способ доступа к идентификатору созданного экземпляра службы? Например, что бы заменить ??
в фрагменте кода ниже?
@Component({
selector: 'app-component1',
templateUrl: './component1.component.html',
providers: [SearchService]
})
export class Component1 {
constructor(
public searchService: SearchService,
) {
console.log('The instance Id of searchService is...' + '??');
}
1 ответ
Не существует функции внедрения зависимостей для запроса идентификатора экземпляра ссылки. Некоторые DI-фреймворки имеют эту функцию, а Angular - нет.
Поэтому я использую статический счетчик.
constructor(public searchService: SearchService) {
console.log('The instance Id of searchService is...' + searchService.id);
}
@Injectable()
export class SearchService {
private static nextId: number = 0;
public id: number;
constructor() {
this.id = SearchService.nextId++;
}
}
Было бы неплохо, если бы Angular помечал службы this._id$
уникальная ценность или что-то для нас. Я уверен, что это будет где-то одна строка кода.