首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将服务注入服务角度6的意外结果

将服务注入服务角度6的意外结果
EN

Stack Overflow用户
提问于 2018-07-06 15:41:20
回答 1查看 58关注 0票数 0

我在我的项目中使用ngrx商店和角6。不幸的是,我无法重现我的问题stackblitz,但我将描述我的问题。我有在组件中使用的Service1,也有在Service1中使用的Service2。在构造函数之前,Service1几乎没有我要分配的默认属性。因此,在我的ngOnInit组件中,我做了:

代码语言:javascript
复制
ngOnInit() {
  this.service1.init(someData);
}

在此之后,我要说:

代码语言:javascript
复制
 @Effect({
    dispatch: false
  })
  addItem$ = this.actions$.pipe(
    ofType(fromReducers.AddItem),
    map((action: AddItem) => action.payload),
    tap(item=> *debugger* this.service2.addItemToService1(item))
  );

问题是,在调试器点,如果我查看this.service2,它在service1中有,因为我是通过DI注入它的,但是this.service2.service1.items是空数组。service1似乎在service2中创建了自己的新实例。我希望前面在ngOnInit (someData)中传递的数据。正如您在stackbltiz链接服务中看到的那样,providedIn: 'root'

我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-09 11:18:06

最后,我发现了问题所在。我的Service1位于一个单独的模块中。在这个模块中,我有了providers: [Service1]。所以这个服务创建了两次而不是一次。因此从提供者声明中删除解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51213763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档