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刷新站IP和PV
Sep 05 Javascript
bgsound 背景音乐 的一些常用方法及特殊用法小结
May 11 Javascript
向左滚动文字 js代码效果
Aug 17 Javascript
jQuery 隐藏和显示 input 默认值示例
Jun 03 Javascript
javascript表格的渲染组件
Jul 03 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
Sep 09 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
Nov 09 Javascript
JS正则表达式判断有效数实例代码
Mar 13 Javascript
Vee-Validate的使用方法详解
Sep 22 Javascript
vue2中的keep-alive使用总结及注意事项
Dec 21 Javascript
jQuery实现颜色打字机的完整代码
Mar 19 jQuery
vuex的数据渲染与修改浅析
Nov 26 Vue.js
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与ASP
2006/10/09 PHP
PHP通用检测函数集合
2006/11/25 PHP
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
jquery遍历input取得input的name
2009/04/27 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
AngularJS 简单应用实例
2016/07/28 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
vue中添加mp3音频文件的方法
2018/03/02 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
2018/10/12 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
介绍Python中几个常用的类方法
2015/04/08 Python
python常见数制转换实例分析
2015/05/09 Python
Python 文件处理注意事项总结
2017/04/10 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
优秀幼教自荐信
2014/02/03 职场文书
采购助理岗位职责
2014/02/16 职场文书
设备动力科岗位职责范本
2014/02/23 职场文书
产品开发计划书
2014/04/27 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
求职简历自荐信
2014/06/18 职场文书
运动会宣传稿50字
2015/07/23 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python
matlab xlabel位置的设置方式
2021/05/21 Python