代码之家  ›  专栏  ›  技术社区  ›  mr__brainwash

由于将服务注入服务角度6而导致意外结果

  •  0
  • mr__brainwash  · 技术社区  · 8 年前

    我在我的项目中使用了NGRX Store和Angular6。不幸的是,我不能复制我的问题 stackblitz ,但我将描述我的问题。我有 Service1 在组件中使用的,以及 Service2 ,内部使用 服务1 . 服务1 在其中包含contstructor之前,我将分配一些默认属性。所以在我的组件中 ngOnInit 我做:

    ngOnInit() {
      this.service1.init(someData);
    }
    

    在这个效果之后,我做了:

     @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 是空数组。看起来像 服务1 在内部创建自身的新实例 service2 . 我希望有一些我之前传递的数据 恩戈尼尼特 someData providedIn: 'root'

    1 回复  |  直到 8 年前
        1
  •  0
  •   mr__brainwash    8 年前

    providers: [Service1]

    推荐文章