Búsqueda de sitios web

typescript - Servicios Anidados en Angular 2


Al anidar un servicio dentro de otro servicio en Angular 2, no se producen errores de TypeScript. Sin embargo, cuando se carga la página con el componente principal, el siguiente error se registra en la consola: EXCEPCIÓN: ¡No hay proveedor para ConfigService! (AdminAreaComponent -> CoreService -> ConfigService)

¿Qué necesito hacer para prevenir esto?

app.ts:

import {bootstrap} from 'angular2/platform/browser'
import {AdminAreaComponent} from './components/adminArea.component'
var adminArea = bootstrap(AdminAreaComponent);

adminArea.component.ts

import {Component} from 'angular2/core'
import {CoreService} from '../services/core.service'

@Component({
    selector: 'admin-area',
    templateUrl: 'partials/adminArea.html',
    providers: [CoreService]
})
export class AdminAreaComponent {
    constructor(private coreService: CoreService) {}
}

core.service.ts

import {Injectable} from 'angular2/core'
import {ConfigService} from './config.service'

@Injectable()
export class CoreService {
    constructor(private configService : ConfigService) { }
}

config.service.ts

import {Injectable} from 'angular2/core'

@Injectable()
export class ConfigService {
    constructor() { }
}

Respuesta #1

Parece que ConfigService no está listado entre los proveedores en

bootstrap(AppComponent, [... CoreService, ConfigService])

o en la lista de proveedores del componente (si quieres limitar el alcance del servicio) como mencionó Eric.

Artículos relacionados