W przypadku konkretnego zastosowania muszę przesłać pojedynczy formularz „starą drogą”. Znaczy, używam formularza z działaniem = "". Odpowiedź jest przesyłana strumieniowo, więc nie ładuję strony ponownie. Jestem w pełni świadomy, że typowa aplikacja AngularJS nie przesyła formularza w ten sposób, ale jak dotąd nie mam innego wyboru.
To powiedziawszy, próbowałem wypełnić niektóre ukryte pola z Angulara:
<input type="hidden" name="someData" ng-model="data" /> {{data}}
Uwaga: wyświetlana jest poprawna wartość w danych.
Formularz wygląda jak standardowy formularz:
<form id="aaa" name="aaa" action="/reports/aaa.html" method="post">
...
<input type="submit" value="Export" />
</form>
Po naciśnięciu przycisku Prześlij żadna wartość nie zostanie wysłana na serwer. Jeśli zmienię pole wprowadzania na „tekst”, będzie działać zgodnie z oczekiwaniami. Moje założenie jest takie, że ukryte pole nie jest tak naprawdę wypełnione, podczas gdy pole tekstowe jest faktycznie wyświetlane ze względu na dwukierunkowe wiązanie.
Jakieś pomysły, jak mogę przesłać ukryte pole wypełnione przez AngularJS?
<input type="hidden" required ng-model="data.userid" ng-init="data.userid=pivot.id" />
. To może nie być właściwy sposób, ale działa dla mnie.
display: none;
? To brzydkie. Kątowe ignoruje ukryte elementy.