gpt4 book ai didi

javascript - 通过可观察量将数据从组件传递到服务

转载 作者:行者123 更新时间:2023-12-02 22:50:44 25 4
gpt4 key购买 nike

我需要将信息从组件 A 发送到服务,在那里进行处理,然后将其发送到组件 B。A 和 B 是 sibling 。我需要组件 A 来触发此操作,以便在组件 B 上获得所需的结果。

我尝试使用 rxjs 的可观察量来实现此目的(我不知道这是否是最好的方法或实践)

目前我的组件 A 如下所示:

import { Observable } from "rxjs/Rx"
import { of, Subscription } from 'rxjs';
import { SoporteService } from '../soporte/services/soporte.service';

public constructor( public _observable: Subscription, (...)

let observable = of (id_estado)
this._observable = observable.subscribe( (x:number) => {
} )

我能够按照一些指南将其结合在一起,尽管我根本不确定我应该如何接收服务上的数据,或者为什么我不使用 .next

当我保存前一个组件时,我得到

Uncaught (in promise): NullInjectorError: StaticInjectorError(AppModule)[Component A]

如何发送这样的数据?

最佳答案

使用当前代码,您尝试将可观察对象作为依赖项注入(inject)。相反,您应该将服务注入(inject)到组件 A 和 B 中,并在服务中提供组件 A 调用的方法以及组件 B 可以订阅的 ObservableEventEmitter

类似这样的东西;

中介服务

@Injectable({
providedIn: 'root'
})
export class MyService {

public eventEmitter: EventEmitter<any> = new EventEmitter<any>();

public methodThatCompnentACanCall(someValue: string) {
this.eventEmitter.emit(someValue);
}
}

组件 A 和 B 的构造函数

公共(public)构造函数(私有(private)中介:MyService)

您可能需要搜索“中介模式”以获取更多信息。

关于javascript - 通过可观察量将数据从组件传递到服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58186623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com