使用Angular CLI。我有一个组件和一个变量: this.name =' someValue' 我想使用Observable将变量发送到另一个组件,但无法管理它。谁可以帮忙?
答案 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)