Angular 2中的嵌套服务

时间:2016-02-24 14:54:36

标签: angularjs typescript angular

在Angular 2中将服务嵌套到另一个服务时,不会抛出任何打字稿错误。但是,当加载包含顶部组件的页面时,控制台中会记录以下错误:EXCEPTION: No provider for ConfigService! (AdminAreaComponent -> CoreService -> ConfigService)

我需要做些什么才能防止这种情况发生?

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() { }
}

1 个答案:

答案 0 :(得分:2)

似乎ConfigService未与

中的提供商一起列出
bootstrap(AppComponent, [... CoreService, ConfigService])

或在组件的提供者列表中(如果您想限制服务的范围),如Eric所述。