Trong AngularJS, tôi đang sử dụng cách tiếp cận được mô tả ở đây để xử lý kiểu đầu vào = tệp.Cách xóa đầu vào tệp từ 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>
Bộ điều khiển:
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function($scope) {
$scope.setFile = function(element) {
$scope.$apply(function($scope) {
$scope.theFile = element.files[0];
});
};
});
Như đã đề cập đó là một chút của một hack, nhưng nó MOS tly làm việc cho mục đích của tôi. Những gì tôi cần tuy nhiên là một cách để xóa các tập tin đầu vào sau khi tải lên đã hoàn thành - tức là: từ bộ điều khiển.
Tôi hoàn toàn có thể hack nó và sử dụng jQuery hoặc một cái gì đó để tìm phần tử đầu vào và xóa nó, nhưng đã hy vọng cho một cái gì đó thanh lịch hơn một chút.
Tuyệt. Vấn đề duy nhất tôi nhận thấy là sau khi chọn tệp, có lỗi trong nhật ký bảng điều khiển về phần tử HTML không hợp lệ trong phạm vi. $ Chức năng đồng hồ. (Chạy trong Chrome) –
Cách khắc phục là thay đổi "selector.val (file);" đến "if (file == null) selector.val (tệp);" –