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实现文本框鼠标右击无效以及不能输入的代码
Nov 05 Javascript
javascript中的startWith和endWith的几种实现方法
May 07 Javascript
往光标所在位置插入值的js代码
Sep 22 Javascript
JS实现根据出生年月计算年龄
Jan 10 Javascript
基于JQuery实现的Select级联
Jan 27 Javascript
JavaScript为事件句柄绑定监听函数实例详解
Dec 15 Javascript
原生JS实现拖拽图片效果
Aug 27 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
May 13 Javascript
node.js实现快速截图
Aug 27 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
Feb 08 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
Jun 17 Javascript
关于layui导航栏不展示下拉列表的解决方法
Sep 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绘制一条直线的方法
2015/01/24 PHP
PHP实现的简单异常处理类示例
2017/05/04 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
js返回顶部实例分享
2016/12/21 Javascript
树结构之JavaScript
2017/01/24 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
angular6开发steps步骤条组件
2019/07/04 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
python笔记(2)
2012/10/24 Python
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
详解如何使用Python编写vim插件
2017/11/28 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
python实现简易数码时钟
2021/02/19 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
学生感冒英文请假条
2014/02/04 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
JS封装cavans多种滤镜组件
2022/02/15 Javascript
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers