[角度] [商店]将一项服务注入另一项服务的问题

时间:2019-11-19 07:23:29

标签: angular dependency-injection store ngrx

我遇到了以下问题。我已经创建了一个服务-我们将其称为CopyService。我正在将Store注入其中。

@Injectable({
  providedIn: 'root'
})
export class CopyService {  
  constructor(
    private copyStore: Store<fromCopyStore.CopyState>,
  ) {
    //something going on with the store
  } 

}

此外,我将CopyService注入MenuService

@Injectable({
  providedIn: 'root'
})
export class MenuService {

  constructor(private copyService: CopyService) { 
    // something going on with the copyService
  }
  
 }

最后,MenuService被注入到组件中:

export class Component implements OnInit {
  
  constructor(
    private store: Store<fromRoot.State>,
    private menuService: MenuService,    
  ) {
  }
  
  ngOnInit() {
      // something going on with the menuService
  }
}

仅对实际代码的草稿表示歉意,但是我不确定我实际可以显示多少内容。 无论如何,问题是,我得到了StaticInjectorError(AppModule)[Component-> Store]没有用于存储的提供程序!

我似乎可以找到问题的根源。当然,CopyService在我的应用程序的MainModule的provider部分中列出。

@NgModule({
  imports: [    
    StoreModule.forRoot(reducers, {})       
  ],
  providers: [CopyService],
  entryComponents: [
    //entry components
  ],
  declarations: [
    //declarations
  ]
})
export class MainModule { }

我正在研究Angular的依赖项注入,但是到目前为止,还没有任何途径可以将我引向这个问题的正确方向。

非常感谢!

1 个答案:

答案 0 :(得分:0)

您应该将商店导入到模块中。

请参见https://ngrx.io/guide/store#tutorial