Rxjs监听文件控件问题

发布于 2022-09-04 07:17:12 字数 88 浏览 18 评论 0

Rxjs 怎么监听 input file 值的变化。我看其他都是需要监听键盘事件的,而我这个值有可能不是通过键盘触发的。所以想问问还有什么思路使用Rxjs来实现?

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

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

发布评论

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

评论(1

终遇你 2022-09-11 07:17:12

既然是一个文件,那就存在打开/读取/关闭这个过程,当然监视文件变化可以先监视这个文件的最后修改时间是否变化。基于这个思路,如果用 Rxjs 实现的话,我觉得可能没有现成的事件来完成,但是可以用定时器来实现。

如果说的是 file input 控件,直接监听 change 事件就可以

const file = document.getElementById("file");

Rx.Observable.fromEvent(file, "change")
    .map(e => e.target.value)
    .do(v => {
        console.log("hello", v);
    })
    .subscribe();

https://jsfiddle.net/voLdr8Ly/

如果需要在某些情况触发这个 change 事件(比如你手工修改了 multiple 属性之后就可以用代码触发一次),可以这么干:

const e = document.createEvent("HTMLEvents");
e.initEvent("change", false, true);
file.dispatchEvent(e);

https://jsfiddle.net/voLdr8Ly/1/

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