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 相关文章推荐
菜单效果
Oct 14 Javascript
iframe 自适应高度[在IE6 IE7 FF下测试通过]
Apr 13 Javascript
JavaScript DOM学习第六章 表单实例
Feb 19 Javascript
javascript Array.prototype.slice的使用示例
Nov 14 Javascript
javascript控制台详解
Jun 25 Javascript
TypeOf这些知识点你了解吗
Feb 21 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
Sep 04 Javascript
前端框架Vue.js构建大型应用浅析
Sep 12 Javascript
详解js数组的完全随机排列算法
Dec 16 Javascript
vue页面加载闪烁问题的解决方法
Mar 28 Javascript
微信小程序云开发实现数据添加、查询和分页
May 17 Javascript
layer.open 获取不到表单信息的解决方法
Sep 26 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
smarty section简介与用法分析
2008/10/03 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
PHP实现的策略模式简单示例
2017/08/25 PHP
js表数据排序 sort table data
2009/02/18 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
微信小程序 location API接口详解及实例代码
2016/10/12 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
Node.js系列之安装配置与基本使用(1)
2019/08/30 Javascript
vue实现评价星星功能
2020/06/30 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
python中的插入排序的简单用法
2021/01/19 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
出国签证在职证明
2014/01/16 职场文书
班主任寄语大全
2014/04/04 职场文书
预防煤气中毒方案
2014/06/16 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书