Tôi sử dụng https://github.com/nervgh/angular-file-upload để tải tệp lên.Tải lên tệp AngularJS gửi biểu mẫu cũData
Tôi có biểu mẫu, ngoài việc tải lên tệp, gửi một số trường khác. Để làm rõ, tôi chỉ gửi một lĩnh vực trong ví dụ này:
$scope.save_with_upload = function(user) {
$scope.uploader.formData = [{
name: user.name,
}];
$scope.uploader.uploadAll();
}
Hãy nói rằng giá trị của name
đầu vào là Test 1.
- Khi tôi lần đầu tiên tải trang và nhấp Lưu, nó sẽ gửi các tập tin nhưng không gửi
formData
ở tất cả. - Sau đó, tôi thay đổi trường
name
thành Kiểm tra 2 và nhấn Lưu. Nó sẽ gửi tệp vàformData
, nhưng giá trị củaname
nó sẽ gửi là Kiểm tra 1. - Sau đó, tôi thay đổi trường
name
thành Kiểm tra 3 và nhấn Lưu. Nó sẽ gửi tệp vàformData
, nhưng giá trị củaname
nó sẽ gửi là Kiểm tra 2. - ... và vân vân ...
Vì vậy, nó dường như luôn luôn gửi dữ liệu đã được gán cho formData
trước cuộc gọi cuối cùng để uploadAll
.
Để làm rõ: Nếu tôi làm dir(user, $scope.uploader.formData)
ngay trước khi gọi uploadAll
, nó sẽ hiển thị các giá trị cập nhật chính xác trong cả hai.
Tôi đã vật lộn với nó trong một vài giờ và dường như không thể thấy có gì sai. Ý tưởng nào?
cuộc gọi lại này được thực hiện ở đâu? Tôi đã thử nó trong bộ điều khiển và nó không chạy. Bạn có thể chỉ ném nó trong tầm nhìn không? – bischoffingston
Ngoài ra tại sao bạn không thể 'item.formData.push (formData)'? – bischoffingston
@bischoffingston Mã này cần phải đi vào bộ điều khiển. 'uploader' phải là một thể hiện của' FileUpload'. 'item.formData.push (formData)' và 'Array.prototype.push.apply (item.formData, formData)' là tương đương. –