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 相关文章推荐
通过jquery实现tab标签浏览效果
Feb 20 Javascript
ext读取两种结构的xml的代码
Nov 05 Javascript
jquery中对表单的基本操作代码
Jul 29 Javascript
基于jquery打造的百分比动态色彩条插件
Sep 19 Javascript
解决js正则匹配换行问题实现代码
Dec 10 Javascript
JavaScript中数组继承的简单示例
Jul 29 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
Jun 06 Javascript
原生Javascript插件开发实践
Jan 09 Javascript
Vuejs监听vuex中值的变化的方法示例
Dec 02 Javascript
如何让node运行es6模块文件及其原理详解
Dec 11 Javascript
如何利用JS将手机号中间四位变成*号
Sep 29 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
Oct 28 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注销代码(session注销)
2012/05/31 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
Jquery Change与bind事件代码
2011/09/29 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
js实现动态添加上传文件页面
2018/10/22 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
python Django中models进行模糊查询的示例
2019/07/18 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
python爬取招聘要求等信息实例
2020/11/20 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
2021/01/29 Python
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
优质美利奴羊毛袜,不只是徒步旅行:Darn Tough Vermont
2018/11/05 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
物流管理毕业生自荐信范文
2014/03/15 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
2014年评职称工作总结
2014/11/20 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫