Comment effacer un fichier d'entrée de Angular JS
Dans AngularJS, je suis en utilisant l'approche décrite ici pour gérer input type=file.
- https://groups.google.com/forum/?fromgroups=#!topic/angulaire/-OpgmLjFR_U
- http://jsfiddle.net/marcenuc/ADukg/89/
Balisage:
<div ng-controller="MyCtrl">
<input type="file" onchange="angular.element(this).scope().setFile(this)">
{{theFile.name}}
</div>
Contrôleur:
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function($scope) {
$scope.setFile = function(element) {
$scope.$apply(function($scope) {
$scope.theFile = element.files[0];
});
};
});
Comme mentionné, c'est un peu un hack, mais il a surtout pour mes fins. Ce dont j'ai besoin en est, cependant, un moyen d'effacer le fichier en entrée une fois le téléchargement terminé - c'est à dire: à partir du contrôleur.
Je pourrait tout à fait pirater et utiliser jQuery ou quelque chose à trouver l'élément d'entrée et clair, mais il a été en espérant quelque chose d'un peu plus élégant.
Vous devez vous connecter pour publier un commentaire.
Je n'hésiterais pas à utiliser la directive pour ce genre de tâche.
http://plnkr.co/edit/xLM9VX
remarque: il est à l'aide de jquery pour l'élément de la création.
Après un téléchargement réussi, j'ai clairement le type d'entrée les éléments du fichier explicitement à partir de mon contrôleur, comme suit:
La
input[type='file']
sélecteur nécessite jQuery, mais tout le reste est de la plaine Angulaire.document.getElementById('inputId').value = null;
ma solution sans l'aide de $scope.
Il pourrait vous aider!!
Code HTML échantillon
AngularJs exemple de code
Vous pouvez utiliser l'ID de réinitialiser le champ fichier.
Après le téléchargement de l'effacer.
Exemple ci-dessus fonctionne bien pour moi. Va travailler pour vous aussi.
Dans mon cas, j'ai de diffuser des événements lors du chargement d'un fichier réussit.
Donc, mon directive de montres pour la diffusion, et effacer la sélection.
Il est utilisé comme suit: