我有一个文件上传,但在我们的服务器上,它需要一段时间才能弹出文件对话框。
我如何拦截调用并显示加载屏幕甚至等待光标,直到文件对话框最终打开
<div class="form-group">
<label for="file">Choose File</label>
<input type="file"
id="file"
#input
(change)="handleFileInput($event.target.files)">
<button type="button" (click)="showLoader(); input.click();">Click Me</button>
</div>
当用户选择要上传的文件时,选择文件输入可以正常工作,但是在用户单击“选择文件”按钮和对话框显示之间有5 - 7秒的等待时间
编辑这个对话框,我指的是x1c 0d1x
EDIT#2:基于下面的答案,我想我可以用按钮的点击功能调用两个事件。我能够得到加载屏幕显示,而对话框是得到自己在一起,但现在的问题是,如果用户点击取消按钮的对话框。加载屏幕不会消失。
3条答案
按热度按时间ffdz8vbo1#
如果使用的是角材质,则可以使用垫微调器组件。检查链接。https://material.angular.io/components/progress-spinner/overview
基本上,你只需在html中实现mat-spinner,然后你可以使用ngif指令来显示加载spinner,当文件上传时。所以你可以有一个名为“uploading”的变量,它的值是true还是false取决于你是否上传了一个文件。请参阅下面的片段作为参考:
我希望,你在寻找什么。
c90pui9n2#
你可以添加一个布尔标志,除了
change
事件,你还需要添加一个click
事件。在ts文件中:
在html模板中:
shyt4zoc3#
下面的代码显示了一个微调器,同时上传一个图像,并将此图像作为一个全宽的css背景横幅。它还删除微调器的情况下,取消按钮被击中。包含的css还隐藏了不可样式化的文件输入元素。
css用来隐藏不可设置样式的文件输入元素,并创建一个微调器。