首页 >

浅析Angular中非父子组件间怎么通讯

web前端|js教程浅析Angular中非父子组件间怎么通讯
Angular,非父子组件,组件通讯,服务
web前端-js教程
Angular中非父子组件间怎么通讯?本篇文章给大家介绍一下Angular非父子组件之间通过服务通讯的方法,希望对大家有所帮助!
素材资源站整站源码,vscode里能否标注,天龙ubuntu镜像,暂停tomcat 服务,sqlite 怎么改表名,爬虫太阳灯什么牌子的好,php 判断来路 跳转,陕西seo优化哪家强,网站与c 通讯录,表格代码模板下载地址lzw
灰鸽子 木马 源码,vscode排列样式快捷键,ubuntu sh 文件,多个tomcat安装教程,Excel文件爬虫,win重启php,佛山品牌seo推广哪家有名,网站模板克隆软件lzw
其实提到父子组件之间传值,对我们来说,再熟悉不过了,在业务实现过程中很常见。
app开屏广告源码 下载,ubuntu下载apt包,爬虫广告推广商业,php 前世算法,大牛网站seolzw
但是我在实现的过程中涉及到跨级了(也就是非父子组件之间传值),是的,我可以一层一层地往上传递,在父组件中拿到子组件的传值,那有没有更好的方式呢?【相关教学推荐:《angular教学》】

需求背景:

有一个子组件,可以理解为第三级组件,该组件中有个下拉框,当点击某个li标签的时候,需要将相应选中的值传给第一级组件,同时,一级组件带着接收到的值请求列表接口,进而刷新数据。

最初思路:

当时想着通过localstorage将用户选中的值保存下来,在使用的组件中,再通过localstorage将值取出来,拿着该值请求接口;但是,无法做到实时,用户选中后,没有触发我在父组件中获取数据,也就是子组件中的值改变了,如何通知到父组件。

技术点:

Angular父组件和子组件通过服务来通讯

父组件和它的子组件共享同一个服务,利用该服务在组件家族内部实现双向通讯。

该服务实例的作用域被限制在父组件和其子组件内。这个组件子树之外的组件将无法访问该服务或者与它们通讯。

原理

父组件和它的子组件共享同一个服务,利用该服务在组件家族内部实现双向通讯。

该服务实例的作用域被限制在父组件和其子组件内。这个组件子树之外的组件将无法访问该服务或者与它们通讯。
服务是子组件与父组件之间的桥梁,因为服务可以很方便的注入到其它的组件当中,又因为Subject对象可以将数据多播(传递)给订阅了这个对象的组件,因此结合Angular中的service和Rxjs中的Subject可以很方便的实现组件间的数据通讯。

实现:

在该子组件中创建一个service文件,代码如下:

import { Injectable } from '@angular/core';import { Subject } from 'rxjs';@Injectable({  providedIn: 'root'})export class HeaderActionService {  public pageTenantMode = new Subject();  // 获得一个Observable;  missionConfirmed$ = this.pageTenantMode.asObservable();  constructor() {}  setParams(params) {    this.pageTenantMode.next(params);  }}

子组件数据层调用上述方法,将值传进去。

this.tenantModeService.setParams()

父组件调用的地方注入上述服务,代码如下:

    headerModeService.missionConfirmed$.subscribe(        () => {          this.mode = headerModeService.pageTenantMode;          this.initTableData();        }      );

编程入门!!


浅析Angular中非父子组件间怎么通讯
  • vue2.0非父子组件间怎么进行通讯?
  • vue2.0非父子组件间怎么进行通讯? | vue2.0非父子组件间怎么进行通讯? ...

    浅析Angular中非父子组件间怎么通讯
  • 详解Angular中组件间通讯的几种方法
  • 详解Angular中组件间通讯的几种方法 | 详解Angular中组件间通讯的几种方法 ...

    浅析Angular中非父子组件间怎么通讯
  • 带你了解Angular中的组件通讯和依赖注入
  • 带你了解Angular中的组件通讯和依赖注入 | 带你了解Angular中的组件通讯和依赖注入 ...