In AngularJS verwende ich den hier beschriebenen Ansatz, um Eingabe Typ = Datei zu behandeln.So löschen Sie eine Dateieingabe von Angular JS
- https://groups.google.com/forum/?fromgroups=#!topic/angular/-OpgmLjFR_U
- http://jsfiddle.net/marcenuc/ADukg/89/
Markup:
<div ng-controller="MyCtrl">
<input type="file" onchange="angular.element(this).scope().setFile(this)">
{{theFile.name}}
</div>
Controller:
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function($scope) {
$scope.setFile = function(element) {
$scope.$apply(function($scope) {
$scope.theFile = element.files[0];
});
};
});
Wie erwähnt es ein bisschen wie ein Hack, aber es mos tally arbeitet für meine Zwecke. Was ich jedoch brauche, ist eine Möglichkeit, die Dateieingabe zu löschen, nachdem der Upload beendet wurde - dh von der Steuerung.
Ich konnte es vollständig hacken und jQuery oder etwas verwenden, um das Eingabeelement zu finden und es zu löschen, aber hoffte auf etwas eleganteres.
Schön. Das einzige Problem, das mir aufgefallen ist, ist, dass nach dem Auswählen einer Datei ein Fehler im Konsolenprotokoll über ein ungültiges HTML-Element im Bereich aufgetreten ist. $ Watch-Funktion. (Wird in Chrome ausgeführt) –
Problemumgehung ist die Änderung von "selector.val (file);" zu "if (file == null) selector.val (Datei);" –