2
我正在用RxJs在Angular2中开发一个组件。这是我对RxJs的第一步,我正在讨论如何使用RxJs的优点和常量。订阅/取消订阅VS Create/TakeUntil?
该组件基于一个文本框。当文本框是被动的,失焦时,文本框显示信息。当用户点击它时,焦点位于文本框上,在其下面出现一个工具提示,当用户正在编辑文本时显示信息。
在每个KeyUp上,处理文本框的值并验证多个业务规则,然后更新弹出窗口以向用户提供反馈。
验证是作为debounceTime和distinctUntilChanged的keyup上的observable订阅处理的。
有两个事件可用:“开始编辑”,当用户点击文本框和“结束编辑”时,当用户按下ENTER,ESCAPE,TAB或单击不在控件上。
考虑到网页上会有20多种此类控件,管理keyUp订阅的最佳实践是什么?例子:
- 每次“开始编辑”被触发,创建KEYUP订阅,像Observable.fromEvent(“KEYUP”),并与“结束编辑”事件作为一个参数添加操作“takeUntil”?
- 保持可观察的某个地方,每次“开始编辑”被触发,订阅它来处理输入,当“结束编辑”发生时,取消订阅它?
- A或B之间无显着差异
- 其他建议?
谢谢! 塞巴斯蒂安
代码胜过千言万语。 – estus