第一次创建angular4项目。我将network.service.ts添加到services.module.ts提供程序,然后我将services.module.ts添加到shared.module.ts提供程序,然后我将shared.module.ts添加到app.module.ts提供程序。 当我尝试在我的视图中使用NetworkService时,我得到ERROR错误:没有NetworkService的提供程序。
当我直接将NetworkService添加到app.module.ts提供程序时,会发生此错误。
我想知道是否有可能像我一样链接提供商,如果可以的话,如何做到这一点。
network.service.ts
<T>
service.module.ts
import { Injectable } from '@angular/core';
@Injectable()
export class NetworkService {
constructor() { }
test = "testing";
myTest(){
return 'method testing';
}
}
shared.module.ts
import { NgModule } from '@angular/core';
import { NetworkService } from './network.service';
@NgModule({
imports: [],
exports:[],
declarations: [],
entryComponents: [],
providers: [NetworkService]
})
export class ServicesModule {
}
app.module.ts
import { NgModule } from '@angular/core';
import { ServicesModule } from './services/services.module';
@NgModule({
imports: [],
exports:[],
declarations: [],
entryComponents: [],
providers: [
ServicesModule,
]
})
export class SharedModule {
}
答案 0 :(得分:0)
您必须在appmodule中添加提供程序
必须使用SharedModule
在提供者行添加提供者答案 1 :(得分:0)
您对import { NgModule } from '@angular/core';
import { ServicesModule } from './services/services.module';
@NgModule({
imports: [ServicesModule], // import modules
exports:[],
declarations: [],
entryComponents: [],
providers: [] // do not provide modules
})
export class SharedModule {
}
的定义很好,但是,您需要在其他功能模块中导入模块而不是提供它们:
exports: []
AppModule也是如此。没有必要将您的服务放入模块的console.log
,它仅用于指令,管道和其他模块(组件是指令的子形式)。