В AngularJS я использую описанный здесь подход для обработки типа ввода = файла.
- https://groups.google.com/forum/?fromgroups=#!topic/angular/-OpgmLjFR_U
- http://jsfiddle.net/marcenuc/ADukg/89/
Разметка:
<div ng-controller="MyCtrl">
<input type="file" onchange="angular.element(this).scope().setFile(this)">
{{theFile.name}}
</div>
Контроллер:
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function($scope) {
$scope.setFile = function(element) {
$scope.$apply(function($scope) {
$scope.theFile = element.files[0];
});
};
});
Как уже упоминалось, это немного взломать, но в основном это работает для моих целей. Однако мне нужен способ очистки ввода файла после завершения загрузки, т.е. Из контроллера.
Я мог бы полностью взломать его и использовать jQuery или что-то, чтобы найти элемент ввода и очистить его, но надеялся на что-то более элегантное.