我使用HTML文件类型控件来选择和上传文件(使用AngularJS)。我的加价如下:
<input id="uploadFile" accept=".csv" type="file" ng-file-select="model.onFileSelect($files)" onchange="angular.element(this).scope().fileNameChanged(this)">
因此,当我选择任何文件时,会触发fileNameChanged事件而不是onFileSelect。这到目前为止工作正常。但是,如果我选择要上传的同一文件,则不会触发fileNameChanged事件(因为我上传了同一个文件),但我想允许用户一次又一次地上传同一个文件。 onFileSelect事件永远不会被触发。
有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
最后让它工作,在HTML中我添加了onclick JS事件,如下所示:
<input id="uploadFile" onclick="myFunction();" accept=".csv" type="file" ng-file-select="model.onFileSelect($files)" onchange="angular.element(this).scope().fileNameChanged(this)">
function myFunction() {
//setting value of null of 0th index coz in my case i allow user to upload only single file.
//in case of multiple files, you gotta set value to null of the entire array of file list
//returned by the control
$('#uploadfile')[0].value = null;
return true;
}
有了这个,控件就不会缓存文件名,下次当选择同一个文件时,onChange事件就会被触发。
如果您仍然遇到任何问题,请告诉我。
THX, Sagar的