首页 > 解决方案 > 如何通过角度服务将数据从表单(输入)传递到另一个组件

问题描述

我有 2 个组件,想获取一种形式的输入并将它们作为数据传递给另一个组件。

组件 1:

this.dal = this.form_search.get('dal').value;
this.service.passDataR(this.dal);

服务:

public S = new Subject<any>();
passData$ = this.S.asObservable();

组件 2:

this.service.passDataR$
   .subscribe(
     result => {

        console.log('data 1 lista here', result);

      }
   );

这应该通过服务来完成,因为这些组件没有任何关系。

问题是,当我将服务表单 comp1 调用为 comp3 时,它就可以了。但是当从 comp3 调用 comp1 数据时是未定义的。所以我无法看到第一个 comp 输入的结果。

标签: angularservicecomponents

解决方案


您是否尝试过使用 BehaviourSubject 代替?这样,您可以设置初始值

public passRepartiSource = new BehaviorSubject(/*value*/); 

推荐阅读