我在下面创建了一个NgModule,但是在我的SomeComponent中,我仍然需要包含SomeService,否则会产生错误。这是正确的方法吗?与路由文件相同,我需要导入已经在NgModule中导入的组件。
@NgModule({
imports: [ CommonModule, SharedModule ],
declarations: [ SomeComponent ],
providers: [ SomeService ]
})
export class TestModule { }
在SomeComponent中:
import { SomeService } from "./some.service";
export class SomeComponent {
constructor(private _someService: SomeService) {
this._comService.xxx
}
}
答案 0 :(得分:0)
那是对的。您仍然需要进行导入。您不需要在整个地方声明提供者和指令。
答案 1 :(得分:0)
这是正确的。导入使您可以访问服务类的属性和方法,并在构造函数参数中包含对它的引用,以告知Angular检索它的实例。
您(通常)不想做的唯一事情是将服务列为您要使用它的组件内的提供者。因为它已经在模块装饰器的providers数组中列出,将其列为其他地方的提供者将创建单独的实例。