架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 12988|回复: 0

[Angular] Angular 9 系列(三)订阅动态组件事件

[复制链接]
发表于 2020-6-2 17:20:01 | 显示全部楼层 |阅读模式
上一节回顾

Angular 9 系列(一)动态加载组件
https://www.itsvse.com/thread-9238-1-1.html

Angular 9 系列(二)动态组件传参
https://www.itsvse.com/thread-9245-1-1.html

Angular 9 系列(三)订阅动态组件事件
https://www.itsvse.com/thread-9246-1-1.html

Angular 9 系列(四)自定义 Pipe 管道
https://www.itsvse.com/thread-9248-1-1.html

Angular 9 系列(五)格式化金额货币格式
https://www.itsvse.com/thread-9249-1-1.html


本文章讲解,如果订阅动态组件的事件,我们知道普通的组件可以通过 () 绑定,如果绑定动态创建的事件呢?并且接受组件传递过来的参数。

Modal1Component 和 Modal2Component 组件是我们在主界面动态创建的组件。

我们修改 Modal1Component 组件,添加一个 input 输入框和按钮。当点击子组件按钮的时候,将值传回父组件,并且显示到父组件的界面。

先看效果图,如下:


dynamic component event.gif

Modal1 组件(动态创建的子组件)相关代码

modal1.component.html



modal1.component.ts



index 组件(父组件)相关代码

index.component.html

index.component.ts



如果报错:

Can't bind to 'ngModel' since it isn't a known property of 'input'

解决办法:

在你的app.module中添加如下代码即可:




我们就可以实现订阅动态创建的组件的事件了。

如果不考虑接收子组件的值的话,使用 HostListener 也可以接收到子组件的事件,然后根据 button 按钮名称做相应的处理。

在父组件 index.component.ts 添加如下代码:

这里的 e 指的是 $event.target ,如果你知道如何获取事件的参数的话,也可以从本文章回复留言。

index.png

(完)




上一篇:Angular 9 系列(二)动态组件传参
下一篇:文章发布系统谁知道怎么写
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2025-6-16 07:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表