当前位置: 首页 > java >正文

angular跨组件通讯

先单独写一个data.service.ts文件
代码如下

import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';@Injectable({providedIn: 'root',
})
export class DataService {private eventBus: Subject<any> = new Subject();emitEvent(event: any) {this.eventBus.next(event);}getEvents() {return this.eventBus.asObservable();}
}

然后在需要发送信息的组件的地方这么写:

import { DataService } from './data.service';constructor(private dataService: DataService,) {
}getList(){// 调用完接口后另外一个组件需要改变状态,发送信息this.dataService.emitEvent('refresh');
}

在接收组件的地方这么写:

import { DataService } from './data.service';constructor(private dataService: DataService,) {
}ngOnInit() {// 订阅this.dataService.getEvents().subscribe(event => {console.log('Received event:', event);});}

如果就写这些,界面运行会报错,还需要在引入两个组件的最外层module里面providers里面添加一下

import { DataService } from '.data.service';@NgModule({imports: [//引用不写了],declarations: [],exports: [],providers: [DataService],
})
export class AppModule {}
http://www.xdnf.cn/news/2553.html

相关文章:

  • 【误差理论与可靠性工程】蒙特卡洛法计算电路可靠度和三极管静态工作点电压
  • 从数据孤岛到智能决策:健康管理系统如何打通企业健康大数据?
  • 使用DeepSeek进行PPT制作
  • ARCGIS PRO 在地图中飞行
  • node20的安装和vue的入门准备
  • Python3(12) 条件控制
  • AI发展史
  • java(三) -------------运算符、字符串、输入输出、大数值和数组
  • CoOAG:首个捕捉学术研究兴趣动态演变的数据集
  • SQL命令
  • 高频关键字、函数、容器、智能指针和算法例子
  • 深度学习新趋势:利用MLP取代卷积层——S2-MLPv2模型解析
  • EdgeOne 防盗刷实践教程
  • 19.TVS特性与使用注意事项
  • JAVA中的贪婪爬取和非贪婪爬取
  • C++:STL——list
  • PG-EXPLAIN基础
  • 稳扎稳打,25西电生命科学技术学院(考研录取情况)
  • HTML 的基本结构与简单文件编写方法
  • 【MobaXterm】win10下载v25.1安装流程
  • Java——封装(面向对象)
  • AI算力革命驱动光模块产业跃迁:800G规模化部署与1.6T技术竞速下的市场新纪元
  • RAGFlow解决Docker Compose include 报错问题
  • Android13增加一个systemservice,并允许APP访问
  • 开源财务软件:企业财务数字化转型的有力工具
  • 图片矫正模型
  • FPGA时钟设计
  • JavaScript之Webpack的模块加载机制
  • 【Linux网络与网络编程】13.五种 IO 模型
  • AIGC(生成式AI)试用 32 -- AI做软件程序测试 3