Đối với một trường hợp sử dụng cụ thể, tôi phải gửi một mẫu đơn "cách cũ". Có nghĩa là, tôi sử dụng một hình thức với hành động = "". Phản hồi được truyền phát, vì vậy tôi không tải lại trang. Tôi hoàn toàn biết rằng một ứng dụng AngularJS điển hình sẽ không gửi biểu mẫu theo cách đó, nhưng cho đến nay tôi không có lựa chọn nào khác.
Điều đó nói rằng, tôi đã cố gắng điền vào một số trường ẩn từ Angular:
<input type="hidden" name="someData" ng-model="data" /> {{data}}
Xin lưu ý, giá trị chính xác trong dữ liệu được hiển thị.
Biểu mẫu trông giống như một hình thức tiêu chuẩn:
<form id="aaa" name="aaa" action="/reports/aaa.html" method="post">
...
<input type="submit" value="Export" />
</form>
Nếu tôi nhấn gửi, không có giá trị nào được gửi đến máy chủ. Nếu tôi thay đổi trường đầu vào để gõ "văn bản" thì nó hoạt động như mong đợi. Giả định của tôi là trường ẩn không thực sự được điền, trong khi trường văn bản thực sự được hiển thị do ràng buộc hai chiều.
Bất kỳ ý tưởng nào làm thế nào tôi có thể gửi một trường ẩn được điền bởi AngularJS?
<input type="hidden" required ng-model="data.userid" ng-init="data.userid=pivot.id" />
. Đây có thể không phải là cách làm đúng đắn nhưng nó hiệu quả với tôi.
display: none;
? Thật xấu xí tho. Angular bỏ qua các yếu tố ẩn.