2017-03-31 91 views
0

我使用@angular/cli。通过创建一个名为services的文件夹来验证我使用验证服务的表单,然后运行ng g service validate。 两个文件创建和内部validate.service,我写了一些验证功能。然后我把它imported到我的另一个文件,并创建了constructor内的情况下使用类似下面this关键字调用它。错误:没有提供程序ValidateService

constructor(private vd : ValidateService) { } 

然后我检查ng serve。所以它提供以下错误

ERROR Error: Uncaught (in promise): Error: No provider for ValidateService! 

一些说,这束被打破,它会很快修复并代替其使用的开发包。这是什么。我不知道在app.module.ts

+0

需要设置[商]在@Component。 –

+0

我该怎么做,为什么要这样做。这是最新的方式 – Jobs

+0

是,西港岛线请你把组件文件的代码,所以如果你想要每个组件实例一个服务实例,我可以建议你最好 –

回答

2

使用提供程序文件类似

@NgModule({ 
    imports: [], 
providers: [ValidateService] 
}) 
+0

我们以前没做过。它这个最新的东西 – Jobs

+0

@harnish没有。它一直是这样的。服务总是需要提供的,而CLI从未决定在哪里做。 –

2

有两种方法可以做到这一点,做的最新方法:

第一:

@NgModule({ 
    imports: [], 
providers: [ValidateService] 
}) 

第二个:

@Component({ 
    selector: 'countries', 
    providers: [ValidateService] 
}) 

这取决于要求。

如果您希望每个组件实例有一个服务实例,请将其添加到组件的 提供程序中。如果你想为 整个应用程序的唯一实例,将其添加到NgModule的供应商。这包括在 有关服务和依赖注入的文档中。

正如@JB Nizet在评论部分解释

相关问题