Angular 事件触发传值问题
我提的问题是一个“中间人”模式传递数据,即子组件A发射数据,父组件接收数据,再通过绑定将数据传给子组件B。
app.compent主组件中的 (buy) = "buyHandler($event)" 绑定操作,需要子组件中的按钮点击事件来触发吗? 主组件、子组件中的 $event 参数是什么关系呢?
其中,子组件如果去掉参数 $event ,也不会影响程序的正常运行,而主组件中的 $event 参数是必须的。
子组件如下:
主组件如下:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
父子组件的event都不是必须的,看场景。
父组件的event参数,是接收子组件传过来的参数,你子组件要是不发射(emit)参数,那么父组件的这个event也不是必须的,这种情况也是常见的,就是父组件只需要知道子组件已经触发某种行为,但是不需要子组件去处理相应的业务逻辑,交由父组件去处理就好了,这种子组件也就叫做所谓的傻瓜组件,就是单纯做页面渲染,不处理过多逻辑,但是复用性高,这和React当中的木偶组件一个作用。
子组件的event参数,是代表你点击事件的event,就是普通DOM事件的event,没什么好说的。
注意,是$event,不是event,其实参数什么名字都可以,为什么加个$呢, 一般我们默认$开头的变量就是流的意思,而emit就是NodeJS的流发射,所以你懂得,不要被这个event误导了,父组件的此event非子组件的彼event呢。
需要子组件绑定事件来触发的 其中父组件的
$event
是子组件emit
传出的值 子组件的$event
是点击的事件具体可以查阅对应的
@Output()
文档