angularjs父子通信,angular 父组件调用子组件的方法

  angularjs父子通信,angular 父组件调用子组件的方法

  非父子组件如何用Angular进行通信?本文介绍了Angular的非亲子组件通过服务进行通信的方法,希望对你有所帮助!

  其实我们所熟悉的是指父子组件之间的值传递,这在业务实现的过程中是很常见的。

  但是我参与的是跨级实现(也就是在非父子组件之间传递值)。是的,我可以将它们一层一层地向上传递,并在父组件中获取子组件的值。有没有更好的办法?【相关教程推荐:《angular教程》】

  

需求背景:

  有一个子组件,可以理解为三级组件。在这个组件中,有一个下拉框。当您单击某个li页签时,需要将相应的选定值发送到第一级组件。同时,第一级组件用接收到的值请求列表接口,然后刷新数据。

  

最初思路:

  当时我在想通过localstorage保存用户选择的值。在使用的组件中,我通过localstorage取出值,并用该值请求接口;但是,不可能是实时的。用户选中后,并不触发我获取父组件中的数据,即子组件中的值发生变化。如何通知父组件?

  

技术点:

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

  父组件及其子组件共享同一个服务,用于实现组件族内部的双向通信。

  该服务实例的范围仅限于父组件及其子组件。该组件子树之外的组件将无法访问服务或与之通信。

  

原理

  父组件及其子组件共享同一个服务,使用该服务在组件家族内部实现双向通信。

  该服务实例的范围仅限于父组件及其子组件。该组件子树之外的组件将无法访问服务或与之通信。

  它是子组件和父组件之间的桥梁,因为服务可以很容易地注入到其他组件中,又因为Subject对象可以将数据组播(传输)给订阅了这个对象的组件,所以将Angular中的服务和Rxjs中的Subject结合起来,就可以很容易地实现组件之间的数据通信。

  

实现:

  使用以下代码在该子组件中创建一个服务文件:

  从“@angular/core”导入{ injective };

  从“rxjs”导入{ Subject };

  @可注射({

  providedIn:“根”

  })

  导出类HeaderActionService {

  public pageTenantMode=new subject string();

  //获取一个可观察的;

  mission confirmed $=this . pagetenantmode . asobservable();

  构造函数(){}

  setParams(params) {

  this . pagetenantmode . next(params);

  }

  }子组件数据层调用上述方法,并将值传入。

  this . tenant mode service . set params()被注入到父组件调用的上述服务中,代码如下:

  headermoservice . mission confirmed $。订阅(

  ()={

  this . mode=headermodeservice . pagetenantmode;

  this . inittabledata();

  }

  );有关编程的更多信息,请访问:编程入门!以上是Angular中非父子组件之间如何通信的详细内容。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: