如何将数据从一个子组件传递到父组件和其他子组件?

How to pass data from one child to parent and other child components?

我把我的页面分成以下格式。我有一个父组件和多个子组件。第一个是过滤器组件。因此,当我在此组件中进行提交时,其结果将在所有其他子组件以及父组件中实现。

我认为我从 child-A 接收到父组件的日期将其传递给 child-B 和 child-C 但我无法修复它。

我在这里工作: https://stackblitz.com/edit/angular-fqp5px

谁能帮我解决这个问题?

谢谢。

您可以只创建简单的服务并将值传递给 Subject 对象。并在您想要使用它的其他组件中订阅该对象。

例如服务:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/of';
import { Subject } from 'rxjs';

@Injectable()
export class dataService {
    //here i am giving example for string. You can use any kind of object(class)
    private querySource = new Subject<string>();
    query$ = this.querySource.asObservable();

    functionname(value: string){
               this.querySource.next(value);
     }
}

现在订阅此服务并在提交按钮上调用 functionName 函数。并且更改将在您希望在父组件或任何其他子组件中的任何位置订阅。

参考 this