angular7 - 一项服务的多个实例
问题描述
我有一个简单的服务
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class CompToCompService {
private data = new Subject<any>();
data$ = this.data.asObservable();
constructor() { }
Send(value: any) {
this.data.next(value);
}
}
我用它在组件之间来回传输一些光数据。然而,我发现自己需要在同一个组件中使用它两次来发送数据并使用不同的组件来监听。由于角度服务现在默认是单例的,所以一切都混杂在一起。是否可以创建不同的服务器实例,如果可以,我如何让监听组件监听正确的实例?
如果不是什么是完成我想要做的事情的最佳方式。我试图避免为我需要做的每一次沟通创建一个像这样的微小服务。我知道,events
但我的沟通是跨界的routing-outlet
,事件似乎不喜欢那样。
解决方案
创建具有两个或多个子组件的父组件。在每个子组件中使用
提供者:[服务名称]
然后你将有两个 service 实例。但是您必须使用其组件中的每个实例
推荐阅读
- hangouts-chat - 环聊互动卡片:如何添加文本字段?
- javascript - 为什么这个承诺不继续等待?
- android - Android 通知:小图标未与自定义图像一起显示
- python - 为什么除非将 gui 拖到更宽/更大的尺寸,否则 Tkinter 框架不会显示所有三个按钮
- java - 两个不同 LocalContainerEntityManagerFactoryBean 上的 @PersistenceContext 抛出 TransactionRequiredException
- javascript - 如何防止用户通过PayPal购买产品时更改html?
- python - 在 Python 中读取 SendGrid 邮件对象
- flutter - 如何在颤动中显示AppBar下方的警报栏
- sql - 检查数据库中的值是否可用
- python - 如何在python中计算回归误差?