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 相关文章推荐
javascript 控制弹出窗口
Apr 10 Javascript
JavaScript 继承机制的实现(待续)
May 18 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
Nov 21 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
Jun 06 Javascript
js用闭包遍历树状数组的方法
Mar 19 Javascript
JS获取复选框的值,并传递到后台的实现方法
May 30 Javascript
Three.js学习之文字形状及自定义形状
Aug 01 Javascript
AngularJS入门示例之Hello World详解
Jan 04 Javascript
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 Javascript
node版本管理工具n包使用教程详解
Nov 09 Javascript
详解js 创建对象的几种方法
Mar 08 Javascript
vue监听滚动事件的方法
Dec 21 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导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
Extjs中常用表单介绍与应用
2010/06/07 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
JS中BOM相关知识点总结(必看篇)
2016/11/22 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
python实现rsa加密实例详解
2017/07/19 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
python实现名片管理系统项目
2019/04/26 Python
python如何统计代码运行的时长
2019/07/24 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
采购人员的个人自我评价
2014/01/16 职场文书
电大毕业自我鉴定
2014/02/03 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
门面房租房协议书
2014/08/20 职场文书
自荐信怎么写
2015/03/04 职场文书
2015年乡镇工会工作总结
2015/05/19 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
pytorch 如何使用batch训练lstm网络
2021/05/28 Python
你需要掌握的20个Python常用技巧
2022/02/28 Python
JavaScript前端面试组合函数
2022/06/21 Javascript