Pour un cas d'utilisation spécifique, je dois soumettre un seul formulaire «à l'ancienne». Cela signifie que j'utilise un formulaire avec action = "". La réponse est diffusée, donc je ne recharge pas la page. Je suis tout à fait conscient qu'une application AngularJS typique ne soumettrait pas de formulaire de cette façon, mais jusqu'à présent, je n'ai pas d'autre choix.
Cela dit, j'ai essayé de remplir certains champs cachés d'Angular:
<input type="hidden" name="someData" ng-model="data" /> {{data}}
Veuillez noter que la valeur correcte des données est affichée.
Le formulaire ressemble à un formulaire standard:
<form id="aaa" name="aaa" action="/reports/aaa.html" method="post">
...
<input type="submit" value="Export" />
</form>
Si je clique sur Soumettre, aucune valeur n'est envoyée au serveur. Si je change le champ de saisie pour taper "texte", cela fonctionne comme prévu. Mon hypothèse est que le champ caché n'est pas vraiment rempli, alors que le champ de texte est en fait affiché en raison de la liaison bidirectionnelle.
Des idées sur la façon dont je peux soumettre un champ masqué rempli par AngularJS?
<input type="hidden" required ng-model="data.userid" ng-init="data.userid=pivot.id" />
. Ce n'est peut-être pas la bonne façon de faire, mais cela fonctionne pour moi.
display: none;
? C'est moche tho. Angular ignore les éléments cachés.