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 数组克隆方法 小结
Mar 20 Javascript
JS中toFixed()方法引起的问题如何解决
Nov 20 Javascript
IE不支持getElementsByClassName最终完美解决方案
Dec 17 Javascript
前台js改变Session的值(用ajax实现)
Dec 28 Javascript
js给dropdownlist添加选项的小例子
Mar 04 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 Javascript
js创建对象的区别示例介绍
Jul 24 Javascript
express的中间件bodyParser详解
Dec 04 Javascript
js完美解决IE6不支持position:fixed的bug
Apr 24 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
Dec 03 Javascript
javascript动态获取登录时间和在线时长
Feb 25 Javascript
AngularJs定时器$interval 和 $timeout详解
May 25 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权重计算方法代码分享
2014/01/09 PHP
php获取参数的几种方法总结
2014/02/18 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
利用node.js实现自动生成前端项目组件的方法详解
2017/07/12 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
Python实现注册登录系统
2017/08/08 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
Python 函数基础知识汇总
2018/03/09 Python
python3学生名片管理v2.0版
2018/11/29 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
优秀经理事迹材料
2014/02/01 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
信息员培训方案
2014/06/12 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
员工升职自荐信
2015/03/27 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL