我在我的主发光成分的事件订阅的事件:角4发射和在共享服务
main.component.ts
this.sharedService.cartData.emit(this.data);
这是我的sharedService.ts
import { Component, Injectable, EventEmitter } from '@angular/core';
export class SharedService {
cartData = new EventEmitter<any>();
}
在我的其他(子)组件,我想访问这个值,但不知何故,认购不工作:
dashboard.ts
private myData: any;
constructor(private sharedService: SharedService) {
this.sharedService.cartData.subscribe(
(data: any) => myData = data,
error => this.errorGettingData = <any>error,
() => this.aggregateData(this.myData));
}
我错过了什么吗?当我将数据作为Injectable传递时,它工作正常。 发送事件(在主要组件中)发生在一些REST调用之后。
**************更新***************** 所以问题是子组件是在第一个发射之后创建的的事件。我想在这种情况下,最好直接将数据注入子组件。
你在哪里提供sharedService?服务实例可能不相同,如果您在不同模块中提供服务,则会发生这种情况。 –
我在父app.module.ts提供程序中声明了它:[SharedService ...], – Stef
以及这两个组件如何同时加载?在不同的路线? –