Представьте себе услугу, как LoggingService
, которая имеет метод log(msg: string)
. С помощью инъекции с угловым 2 легко получить экземпляр службы в компоненте. Тем не менее, я не мог найти твердого решения, чтобы иметь LoggingService в любом простом классе, который не является компонентом Angular 2, сервисом и т. Д.Угловая 2 сервисная инъекция вне компонентов, услуг и т. Д.
E.g. приложение имеет файл blacklist.ts, который содержит:
export class Blacklist {
isBlacklisted(name: string): boolean {
let result = false;
if(value == "Alice" || value == "Bob") {
result = true;
LoggingService.log("Name'" + name + "' is blacklisted");
}
return result;
}
}
Предположит LoggingService
предусмотрен в AppModule
. Как я могу получить экземпляр службы в приведенном выше примере?
А почему бы вам не сделать BLACKLIST услугу? –
Вы можете запрограммировать инжектор зависимостей (корневого) зависимостей (root), а затем выполнить поиск в реестре своих поставщиков для определенной службы, но это не имеет смысла в вашем примере. Если вы в обычном классе и находитесь вне углового контекста, вам будет сложно общаться с Угловыми сущностями. Как сказал JB, что случилось с превращением вашего кода в сервис? – AngularChef