Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在html和typescript中一行导入同一文件两次?_Html_Typescript - Fatal编程技术网

如何在html和typescript中一行导入同一文件两次?

如何在html和typescript中一行导入同一文件两次?,html,typescript,Html,Typescript,我在html文件中有一个输入元素,如下所示: <input type="file" (change)="receiveFile($event)" id="inputFileButton" hidden /> receiveFile($event) { const fileFromHtml = $event.target.files[0]; const importedFile: FormData = new FormData(); imp

我在html文件中有一个输入元素,如下所示:

 <input
   type="file"
   (change)="receiveFile($event)"
   id="inputFileButton"
   hidden
 />
  receiveFile($event) {
  const fileFromHtml = $event.target.files[0];
  const importedFile: FormData = new FormData();
  importedFile.append('positions', fileFromHtml);
   this.store.dispatch({
    type: '[Position] Import Positions',
    importFile: importedFile,
    positionSetId: this.positionSetId,
    accountSetId: this.accountSetId,
   });
  }

  uploadFile() {
   this.testvar = !this.testvar;
   const element: HTMLElement = document.getElementById(
     'inputFileButton',
   ) as HTMLElement;
   element.click();
  }
除了我想连续导入同一个文件两次之外,它工作正常。第二次它在所有receiveFile($event)上都不调用。

您的receiveFile()函数只在更改事件上运行。如果输入相同的文件,则没有任何更改,因此它不会运行

要克服这个问题,您可以尝试清除输入

document.getElementById("inputFileButton").value = ''
receiveFile()函数仅在更改事件上运行。如果输入相同的文件,则没有任何更改,因此它不会运行

要克服这个问题,您可以尝试清除输入

document.getElementById("inputFileButton").value = ''

因为您的文件没有更改。为什么希望代码重新运行?目的是什么?因为当我导入一个文件时,我会从中获取一些数据,下一次我还想从文件中获取数据,不管它是否重复。也许有一种方法可以重新启动输入字段idkYou可以在调用之间重置输入。或者只是链接逻辑而不依赖于另一个单击如何重置它:)或者使用
输入事件,因为您的文件没有更改。为什么希望代码重新运行?目的是什么?因为当我导入一个文件时,我会从中获取一些数据,下一次我还想从文件中获取数据,不管它是否重复。也许有一种方法可以重新启动输入字段idkYou可以在调用之间重置输入。或者直接链接逻辑而不依赖另一个单击如何重置:)或者使用
输入事件?