angular - RxJs - 从另一个流中更改流的行为
问题描述
我正在使用带有角度 7 的 RxJs 6。
我想在画布中从一个起始元素到另一点画一条线。开始元素已被绘制到画布中。
我有两个流:
- 发出点击开始元素的一种,
click$
; - 从画布发出点击的一种,
canvasClick$
;
如何定义在哪里调用startDraw()
和订阅endDraw()
?如何使用流管理中间绘图状态?
编辑:无反应解决方案
drawState = false;
fromEvent(elem, 'click').subscribe((e) => {
console.log('hang', e);
drawState = true;
e.stopPropagation();
});
fromEvent(canvas, 'click').subscribe((e) => {
if (lineBuilding) {
console.log('stage', e);
lineBuilding = false;
}
});
我认为使用响应式有更好的方法,我认为变量lineBuilding
是必要的并且使用 stopPropagation()?
解决方案
推荐阅读
- c# - Path. 组合两个相对路径字符串以创建新的相对路径
- sql-server - 如何填充仅包含标识列的表?
- javascript - 识别移动设备的纵向或横向模式和缩放级别(但不特定于浏览器)
- c# - 在对 odata 相关实体过滤请求的高效 EF 生成查询中,不使用 And 子句应用 Inner Join
- javascript - 如何在 nuxtServerInit() 中获取 cookie?
- module - 导入带有打开的头文件:命名空间/模块错误
- mysql - 通过单个查询从多个表中返回数据
- php - 如何通过PHP在我的txt文件中显示员工记录的搜索结果?
- postgresql - 即时与 ZonedDateTime
- mysql - MySQL 使用 GROUP BY 和 LEFT JOIN 计算行数