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延迟加载外部js实现代码
Jan 11 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
Aug 16 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
Sep 22 Javascript
浅谈JavaScript中运算符的优先级
Jul 07 Javascript
深入对Vue.js $watch方法的理解
Mar 20 Javascript
Vue官网todoMVC示例代码
Jan 29 Javascript
JS删除String里某个字符的方法
Jan 06 Javascript
小程序click-scroll组件设计
Jun 18 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
Aug 02 Javascript
在vue-cli中引入lodash.js并使用详解
Nov 13 Javascript
extjs图形绘制之饼图实现方法分析
Mar 06 Javascript
小程序中的箭头函数的具体使用
Jun 19 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发送邮件类代码附详细说明
2008/07/10 PHP
PHP PDO函数库详解
2010/04/27 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
php实现encode64编码类实例
2015/03/24 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
JavaScript 语言的递归编程
2010/05/18 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
python实现随机密码字典生成器示例
2014/04/09 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
Python networkx包的实现
2020/02/14 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
Python实现壁纸下载与轮换
2020/10/19 Python
Django url 路由匹配过程详解
2021/01/22 Python
大一新生军训时的自我评价分享
2013/12/05 职场文书
仓库保管员岗位职责
2013/12/20 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
公司员工离职感言
2015/08/03 职场文书
心理健康教育主题班会
2015/08/13 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书