- 时间:2020-05-24 16:13 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:Angular 2父子组件数据传递之@Input和@Output详解(下)
[b]前言[/b]
之前已经给大家介绍了[url=http://www.1sucai.cn/article/117856.htm]Angular 2父子组件数据传递之@Input和@Output[/url]的相关内容,下面这篇文章我们再进一步的进行介绍:
子组件向父组件传递数据使用事件传递是子组件向父组件传递数据最常用的方式,子组件需要实例化EventEmitter类来订阅和触发自定义事件
[b]第一步定义子组件[/b]
[b]childenComponent.ts[/b]
[img]http://files.jb51.net/file_images/article/201707/20177590544800.png?2017659556[/img]
(1).实例化EventEmitter,赋值给event,event被@Output装饰器定义为输出属性,这样event具备了向上级传递数据的能力,通过调用EventEmitter类中定义的emit方法,来向上传递数据
(2).定义一个name属性,用于接受子组件页面的输入
(3).定义upward方法,用于子组件页面点击事件 触发事件调用,[code]upward()[/code]方法里面调用自定义事件event来触发emit方法 传递数据
[b]childenComponent.html[/b]
[img]http://files.jb51.net/file_images/article/201707/20177590612968.png?2017659619[/img]
[b]第二步定义父组件[/b]
[b]parentComponent.ts[/b]
[img]http://files.jb51.net/file_images/article/201707/20177590651532.png?2017659659[/img]
[b]parentComponent.html[/b]
[img]http://files.jb51.net/file_images/article/201707/20177590709777.png?2017659716[/img]
父组件通过绑定自定义事件event ,来订阅来自子组件触发事件(这里是点击事件),当我们点击子组件上面的按钮,调用子组件的[code]upward()[/code]方法,内部实现会调用[code]this.event.emit(this.name);[/code]传递数据,自此父组件就能够监听自定义事件event。调用getData来接收传递过来的数据
最终效果:表单输入数据,点击页面按钮,数据传递到父组件,在显示出来
[img]http://files.jb51.net/file_images/article/201707/20177590732349.png?2017659751[/img]
[b]总结[/b]
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。