javascript - 获取子元素或组件的焦点信息
问题描述
我有一个组件,它可能有几个相同级别的子组件,例如
<parent>
<input />
<child>
<input />
</child>
<child></child>
<child></child>
</parent>
孩子或父母中的任何一个都可能有input
元素。
我想得到的是,如果任何输入元素获得焦点,那么它的父元素应该得到一个调用(除了手动)。如果子组件获得输入获取焦点的信息应该能够将其传播给父组件而不使用EventEmitter
.
我可以使用事件发射器,但如果孩子的嵌套增加,那么这不是一个好方法。我们可以做得更简单吗?
解决方案
利用:
@ViewChild
为了获得对孩子的参考并从父母那里访问他们的数据。
@Input
将数据从父级传递给子级。
@Output
为了触发从 Childs 到 Parent 的事件。
如果您不想使用@Output,您可以使用 RxJS BehaviorSubject
(此处为示例)的解决方法。基本上,您使用该 BehaviorSubject 从子级发出值,然后您从父级订阅这些更改。
推荐阅读
- angular - 如何在循环中执行 ngModel?
- typescript - 对于已发布的包,@types 应该是什么依赖类型?
- javascript - OpenRouteService Directions api使用
- r - 将自定义函数应用于多个 data.table 列
- android - 显示消息回调未调用 - Firebase 应用内消息
- excel - 基于一个条件转置行和列的 VBA 宏
- tfs - 如何使用 TFS 在子文件夹上选择相同的扩展文件?
- reactjs - 如何从 Next Js URL 中删除子文件夹名称?
- iis - 如何在 IIS/Plesk 上将签名算法更改为 SHA-2
- csv - CSV 查找并保存到新文件