Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 意外值';运输数据&x27;由模块';CoreModule';。请添加@Pipe/@Directive/@组件注释。在第八节_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 意外值';运输数据&x27;由模块';CoreModule';。请添加@Pipe/@Directive/@组件注释。在第八节

Javascript 意外值';运输数据&x27;由模块';CoreModule';。请添加@Pipe/@Directive/@组件注释。在第八节,javascript,angular,typescript,Javascript,Angular,Typescript,我在angular 8中的CoreModule中创建了一个服务: @Injectable({ providedIn:'root' }) export class TransportData { private stringData: BehaviorSubject<string> = new BehaviorSubject(null); data$ = this.stringData.asObservable(); constructor() {

我在angular 8中的
CoreModule
中创建了一个服务:

@Injectable({
    providedIn:'root'
})

export class TransportData {

    private stringData: BehaviorSubject<string> = new BehaviorSubject(null);
    data$ = this.stringData.asObservable();

    constructor() { }

    setStringValue(value: string): void {
        this.stringData.next(value);
    }

}
现在我需要在其他组件中使用它:

注册表组件
活动组件

activation.module
中,我使用以下命令:

@NgModule({
  declarations: [ActivetionCodeComponent],
  imports: [
    CommonModule,
    ActivationCodeRoutingModule,
    SharedModule,
    CoreModule,
    ReactiveFormsModule
  ],
  exports:[ActivetionCodeComponent]
})
export class ActivationCodeModule { }
activeioncomponent:

   constructor(private formBuilder: FormBuilder , private activetionCodeService:ActivetionCodeService , private transpostData: TransportData) { 
    this.intialForm();
  }
ti显示此错误:

模块“CoreModule”声明的意外值“TransportData”。请添加@Pipe/@Directive/@组件注释

当你有

@Injectable({
    providedIn:'root'
})
您不需要将其添加到CoreModule。该服务将在应用程序中提供以供使用

默认情况下,此装饰器在属性中有一个
providedIn,该属性为服务创建一个提供者。在这种情况下,“根”中提供的
指定Angular应在根注入器中提供服务

但是,如果您选择不在根目录中提供它,您可以将它添加到
CoreModule
providers

您可以将
TransportData
更改为使用:

@Injectable({
  providedIn: CoreModule,
})
并在核心模块内使用相同的代码:

@NgModule({
  providers: [TransportData],
})

查看官方指南,了解它显示了以下错误:
在初始化之前无法访问“CoreModule”
您的AppModule是否使用CoreModule?使用
NgModule
,我认为现在的方法是创建一个包含服务类的
CoreModule
,并在模块的
提供者中列出服务。然后,您在主应用程序模块中导入核心模块,该模块将向在其构造函数中请求该类的任何子级提供一个实例。i dot his但显示以下错误:
无法在初始化之前访问“CoreModule”
,如果无法在服务中指定应提供该模块,您还可以在CoreModule中声明服务的提供程序:
providers:[TransportData],
查看此链接以获取实时eaxample:
@NgModule({
  providers: [TransportData],
})