Wir wissen in angularjs gibt es keine offizielle Anweisung, Eingabedatei zu manipulieren. Die übliche Methode ist, eine Richtlinie zu definieren, um die Datei zu erhalten, Codes wie folgt:angularjs: Wie bekomme ich das gleiche Bild, wenn ich die selbstdefinierte Anweisung 'fileModel' verwende?
angular.module('app')
.directive('fileModel', function($parse){
return {
restrict: 'A',
link: function(scope, element, attrs){
var model = $parse(attrs.fileModel);
var modelSetter = model.assign;
element.bind('change', function(){
scope.$apply(function(){
modelSetter(scope, element[0].files[0]);
})
scope.file = (event.srcElement || event.target).files[0];
scope.getFile(scope.file);
})
}
}
})
die HTML-Codes sind als beblow:
<input id="file-upload" type="file" file-model="myFile" name="defectImage" accept="image/*" />
ich die obige Richtlinie Eingangsbild verwenden. Es gibt jedoch einen Defekt in den obigen Codes. Das ist, wenn ich ein selbes Bild mehrfach wähle, werde ich nur die Datei beim ersten Mal bekommen. So, wie man die oben genannten Codes ändert, um das selbe Bild mehrfach zu erreichen und jedes Mal, wenn ich die Datei bekommen kann?
können Sie Ihren HTML-Teil auch hinzufügen, die Richtlinie, die Sie verwenden –
Sind Sie auf Direktive beschränkt oder nicht? –