Pour un cas d'utilisation spécifique, je dois soumettre un formulaire unique à l'"ancienne méthode". Autrement dit, j'utilise un formulaire avec action="". La réponse est diffusée en continu, ce qui m'évite de recharger la page. Je suis tout à fait conscient qu'une application AngularJS typique ne soumettrait pas un 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 à partir d'Angular :
<input type="hidden" name="someData" ng-model="data" /> {{data}}
Veuillez noter que la valeur correcte des données est indiqué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 j'appuie sur "submit", aucune valeur n'est envoyée au serveur. Si je modifie le champ de saisie pour qu'il contienne du "texte", cela fonctionne comme prévu. Je suppose que le champ caché n'est pas réellement rempli, alors que le champ de texte est affiché en raison de la liaison bidirectionnelle.
Avez-vous une idée de la façon dont je peux soumettre un champ caché rempli par AngularJS ?
4 votes
Hmm... et si on tapait du texte,
display: none;
? Mais c'est moche. Angular ignore les éléments cachés.0 votes
Mettez cela comme réponse @tymeJV !
7 votes
J'utilise la syntaxe suivante pour lier une valeur :
<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.