Angular 2父子组件之间共享服务通信的实现


Posted in Javascript onJuly 04, 2017

前言

如今的前端开发,都朝组件式开发模式靠拢,如果使用目前最流行的前端框架Angular和React开发应用,不可避免地需要开发组件,也就意味着我们需要考虑组件间的数据传递等问题,不过Angular 2已经为我们提供了很好的解决方案。

本文详细介绍了Angular2父子组件共享服务通信的相关内容,父子组件共享同一个服务,利用该服务实现双向通信,下面来看看详细的介绍:

第一步:定义服务

parentService.ts

Angular 2父子组件之间共享服务通信的实现

1).这里用Injectable修饰这个类是一个服务,在其他用到地方只需要注入使用

(2).我们还定义了一个name变量并且初始化值,和一个公共的方法getData

parent.module.ts

Angular 2父子组件之间共享服务通信的实现

我们这里把刚才创建的parentService服务依赖加进来,接着在provides中注册这个parentService服务,在ParentModule模块中注册之后,对于父组件和子组件来说都是指向同一个服务实例,而且这个服务的作用域只在当前这个模块中有效,这句话理解了,就等于理解了父子组件共享服务实现数据通信

在父组件中使用服务

parent.component.ts

Angular 2父子组件之间共享服务通信的实现

导入parentService服务,在构造函数中声明注入parentService服务,因为我们在parentModule模块中,已经将parentService 通过provides注册过,所以我们在组件中不需要进行注册,直接可以使用,你可以这样理解,把当它想象成在模块的容器中已经存在了,只需要从容器中拿出来使用。

(1).这里我们定义了一个OnClick()方法,当页面点击事件触发,就会来调用parentService服务定义的方法getData()获取返回值,弹出返回值。

对应的父组件模版

Angular 2父子组件之间共享服务通信的实现

在子组件中使用服务

因为共享的是同一个ParentService服务实例,所以我们在子组件中也可以调用个ParentService服务的方法,代码同上面用一样

childen.component.ts

Angular 2父子组件之间共享服务通信的实现 

这里同样定义了一个方法,用于测试调用parentService服务,代码实现跟上面一样,不在描述,

对应的子组件模版

Angular 2父子组件之间共享服务通信的实现 

最终效果:

Angular 2父子组件之间共享服务通信的实现

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
新鲜出炉的js tips提示效果
Apr 03 Javascript
深入理解Javascript作用域与变量提升
Dec 09 Javascript
jQuery针对各类元素操作基础教程
Aug 29 Javascript
Javascript实现字数统计
Jul 03 Javascript
Web安全测试之XSS实例讲解
Aug 15 Javascript
关于JSON与JSONP简单总结
Aug 16 Javascript
详解Js模板引擎(TrimPath)
Nov 22 Javascript
jQuery中的select操作详解
Nov 29 Javascript
jQuery实现鼠标经过显示动画边框特效
Mar 24 jQuery
form表单序列化详解(推荐)
Aug 15 Javascript
Vue调试神器vue-devtools安装方法
Dec 12 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
Apr 07 Javascript
jQuery实现动态给table赋值的方法示例
Jul 04 #jQuery
Angular 2父子组件数据传递之局部变量获取子组件其他成员
Jul 04 #Javascript
Angular 4.X开发实践中的踩坑小结
Jul 04 #Javascript
jQuery操作DOM_动力节点Java学院整理
Jul 04 #jQuery
jQuery层级选择器_动力节点节点Java学院整理
Jul 04 #jQuery
jQuery简介_动力节点Java学院整理
Jul 04 #jQuery
JS实现给json数组动态赋值的方法示例
Mar 19 #Javascript
You might like
PHP分页详细讲解(有实例)
2013/10/30 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
php array_map()函数实例用法
2021/03/03 PHP
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
vue解决弹出蒙层滑动穿透问题的方法
2018/09/22 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
Python打包文件夹的方法小结(zip,tar,tar.gz等)
2016/09/18 Python
Python学习思维导图(必看篇)
2017/06/26 Python
python Crypto模块的安装与使用方法
2017/12/21 Python
kali中python版本的切换方法
2019/07/11 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
python中return如何写
2020/06/18 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
后勤园长自我鉴定
2013/10/17 职场文书
高中自我鉴定范文
2013/11/03 职场文书
《草原的早晨》教学反思
2014/04/08 职场文书
拉拉队口号
2014/06/16 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
委托公证书格式
2015/01/26 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
演讲比赛通讯稿
2015/07/18 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
mysql sql常用语句大全
2022/06/21 MySQL