Используйте угловой сервис, который никуда не вводится

Предположим, у вас есть служба Angular (ZombieService), которая, например, отслеживает другую службу. И ZombieService никуда не вводится ДЕМО

Проблема в том, что когда вы никуда не внедряете службу, эта служба полностью игнорируется (не выполняется). Решение состоит в том, чтобы внедрить его, например, в AppComponent.

@Component({
    selector: 'my-app',
    templateUrl: './app.component.html',
    styleUrls: [ './app.component.scss' ]
})
export class AppComponent  {
    constructor(zombieService: ZombieService) {}
    ...
}

Хотя это работает, мне было интересно, нет ли лучшего решения для этого. Какие-либо предложения?

Не могли бы вы уточнить, что вы подразумеваете под «раздетым»? Может быть, вы можете уточнить, что вы пытаетесь сделать.

Elise Patrikainen 21.07.2019 19:05

Если вы не внедрите службу, она не будет выполнена. Итак, если у вас есть служба, выполняющая какую-то фоновую задачу, вам нужно внедрить ее куда-нибудь.

Jeanluca Scaljeri 21.07.2019 19:17

нет, это ты так делаешь.

bryan60 21.07.2019 19:42

Вам нужны статические методы, если вы не хотите внедрять сервис.

Ricardo Ferreira 21.07.2019 20:01
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
4
333
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

The problem is that, when you do not inject a service anywhere, that service is completely ignored (not executed).

Потому что файл, на который никто не ссылается, так же хорош, как и файл из другого проекта. Нет смысла инициализировать службу, на которую нет ссылки.

Только файлы, указанные в основном файле (файлах) записи, рассматриваются для создания пакета с помощью WebPack или любого другого инструмента оркестровки JS.

Эти виды услуг вводятся в AppComponent или также могут быть компонентами уровня модуля.

Это самый общий случай отслеживания/аналитики, и для большинства из них необходимо выполнить этап инициализации в сервисе, который требует внедрения сервиса в какой-то компонент (вероятно AppComponent).

Другие вопросы по теме