Angular 事件触发传值问题

发布于 2022-09-06 05:37:49 字数 503 浏览 10 评论 0

我提的问题是一个“中间人”模式传递数据,即子组件A发射数据,父组件接收数据,再通过绑定将数据传给子组件B。

app.compent主组件中的 (buy) = "buyHandler($event)" 绑定操作,需要子组件中的按钮点击事件来触发吗? 主组件、子组件中的 $event 参数是什么关系呢?

其中,子组件如果去掉参数 $event ,也不会影响程序的正常运行,而主组件中的 $event 参数是必须的。

子组件如下:
图片描述

主组件如下:
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

如何视而不见 2022-09-13 05:37:49

父子组件的event都不是必须的,看场景。

父组件的event参数,是接收子组件传过来的参数,你子组件要是不发射(emit)参数,那么父组件的这个event也不是必须的,这种情况也是常见的,就是父组件只需要知道子组件已经触发某种行为,但是不需要子组件去处理相应的业务逻辑,交由父组件去处理就好了,这种子组件也就叫做所谓的傻瓜组件,就是单纯做页面渲染,不处理过多逻辑,但是复用性高,这和React当中的木偶组件一个作用。

子组件的event参数,是代表你点击事件的event,就是普通DOM事件的event,没什么好说的。

注意,是$event,不是event,其实参数什么名字都可以,为什么加个$呢, 一般我们默认$开头的变量就是流的意思,而emit就是NodeJS的流发射,所以你懂得,不要被这个event误导了,父组件的此event非子组件的彼event呢。

眼藏柔 2022-09-13 05:37:49

需要子组件绑定事件来触发的 其中父组件的$event是子组件emit传出的值 子组件的$event是点击的事件
具体可以查阅对应的@Output()文档

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文