将变量发送到另一个组件(可观察)

时间:2017-11-23 15:21:22

标签: angular rxjs observable

使用Angular CLI。我有一个组件和一个变量: this.name =' someValue' 我想使用Observable将变量发送到另一个组件,但无法管理它。谁可以帮忙?

2 个答案:

答案 0 :(得分:1)

如果组件没有关系Parent->Child,@ marvstar提及共享服务是最好的选择。因此,如果您的组件是分开的,则应使用shared service,您可以在official angular tutorial找到此解决方案的基础知识。总结为shared service,您必须创建Source (Subject) of data,例如public DataSource: Subject<any> = new Subject<any>Observable for subscribing changes in source,它看起来像public Data$ = this.DataSource.asObservable();,每当您想要发布新数据时,您只需简单需要调用服务this.SharedService.DataSource.next(dataToPass),它将为该源的所有观察者发出新数据。因此,在您应该获取数据的组件中,您应该订阅观察者this.SharedService.Data$.subscribe(data => handleData(data))以及它。

但是,如果组件具有关系Parent->Child,那么它就会简单得多。如果您要将数据从Parent发送到Child,您只需在子@Input() dataToPass: any文件和父{{1}中使用ts(强烈建议包含数据类型)文件html

对于Child-&gt;家长关系,您必须使用<child-component [dataToPass]="someParentVariable"></child-component> @Output这样的内容:

EventEmitter

答案 1 :(得分:1)

  1. 请参阅下一个非常有用的教程: here
  2. 检查文件: https://youtu.be/I317BhehZKM