angular中订阅(subscribe)的用法

本文详细介绍了在Angular框架中如何通过路由进行参数传递,包括HTML和TypeScript两种方式,以及如何在组件中接收这些参数。此外,还探讨了跨组件函数复用的实现方法,通过服务来调用组件的刷新函数,实现组件间的通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、用于页面传参(订阅实时监视着数据的变化)

通过html传递参数:

<a [routerLink]="['/tab4','改变参数']" [queryParams]="{id:123123123123}" >改变路由参数后的tab4</a>

通过ts传递参数:

this.router.navigate(['/tab4'], {queryParams:{ 'id':'123123123123 }});

接收参数:

//配置:
import {ActivatedRoute,Router} from '@angular/router';
constructor(
    private _activateRoute: ActivatedRoute,
    private router: Router
  ) {}

使用:
 this._activateRoute.queryParams.subscribe((params)=>{
      this.id=params['id']
    })

2、用于跨组件的函数复用

通过以下例子实现在服务中调用组件的刷新函数

在组件中引入服务,并使用subscribe调用该组件的刷新函数

import {ImService} from "../common/im/im.service";

constructor(
    public imService: ImService   
  ) {
 	 //freshMemberChange:服务中自定义的变量名,用于发布
    this.imService.freshMemberChange.subscribe(data => {
      if(data==='REMOVE_GROUP'){
       this.refreshData()
     }
    });
  }

在服务中触发刷新函数:

 //freshMemberChange :自定义变量名,在组件中使用
 //freshMember :自定义变量名,触发函数时使用,用于订阅
 
import {Subject} from 'rxjs';
public freshMember = new Subject<string>(); 
public freshMemberChange = this.freshMember.asObservable();

 //刷新
 this.freshMember.next('REMOVE_GROUP');
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值