Acabo de crear un nuevo servicio dentro de una aplicación angular y uso provideIn: 'root' para que esté disponible en cualquier parte de la aplicación.
Pero cuando lo importo e intento usarlo, dice que sus métodos no están definidos.
Aquí está el código
servicio.ts
import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class Service { public publicMethod() {} }componente.ts
import { Service } from 'path/to/service'; import { Component } from '@angular/core'; import { AccountService } from 'app/core'; @Component({ selector: 'footer', templateUrl: './footer.component.html', }) export class FooterComponent { constructor(private readonly service: Service) { this.service.publicMethod // undefined } }Otros servicios importados de la misma manera funcionan bien. ¿Qué puede causar este problema?
Intente agregar el servicio que desea inyectar en los proveedores: [] en su core.module y en su AccountService reemplace @Injectable({providedIn: 'root' }) con @Injectable()
@ChrisHamilton tiene razón, un módulo importado a ese servicio causó el problema, no se proporcionó en ninguna parte. Se agregó provideIn: root hasta que se resolvió el problema.