La boîte de saisie du fichier HTML ne déclenche pas le fichier. Sélectionnez l'événement et la mise en garde sur l'événement onchange – angularJS

J'utilise le contrôle du type de fichier HTML pour sélectionner et télécharger un fichier (à l'aide d'AngularJS). Mon marquage est comme ci-dessous:

<input id="uploadFile" accept=".csv" type="file" ng-file-select="model.onFileSelect($files)" onchange="angular.element(this).scope().fileNameChanged(this)"> 

Donc, lorsque je sélectionne un fichier, l'événement FileNameChanged est déclenché et non onFileSelect. Cela fonctionne bien jusqu'à présent. Cependant, si je sélectionne le même fichier à télécharger, l'événement FileNameChanged n'est pas déclenché (car je télécharge le même fichier) mais je souhaite permettre à l'utilisateur de charger le même fichier encore et encore. L'événement onFileSelect n'est jamais déclenché.

Une façon de résoudre ce problème?

Finalement, le HTML m'a ajouté l'événement onclick JS comme ceci:

 <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; } 

Avec cela, le contrôle ne cache pas le nom du fichier et la prochaine fois que le même fichier sera sélectionné, l'événement onChange serait déclenché.

Faites-moi savoir si vous rencontrez toujours un problème.

Thx, Sagar