Para um caso de uso específico, tenho que enviar um único formulário da "maneira antiga". Significa, eu uso um formulário com action = "". A resposta é transmitida, por isso não estou recarregando a página. Estou perfeitamente ciente de que um aplicativo AngularJS típico não enviaria um formulário dessa maneira, mas até agora não tenho outra opção.
Dito isto, tentei preencher alguns campos ocultos do Angular:
<input type="hidden" name="someData" ng-model="data" /> {{data}}
Observe que o valor correto nos dados é mostrado.
O formulário se parece com um formulário padrão:
<form id="aaa" name="aaa" action="/reports/aaa.html" method="post">
...
<input type="submit" value="Export" />
</form>
Se eu clicar em enviar, nenhum valor será enviado ao servidor. Se eu alterar o campo de entrada para digitar "texto", ele funcionará conforme o esperado. Minha suposição é que o campo oculto não é realmente preenchido, enquanto o campo de texto é realmente mostrado devido à ligação bidirecional.
Alguma idéia de como posso enviar um campo oculto preenchido pelo AngularJS?
<input type="hidden" required ng-model="data.userid" ng-init="data.userid=pivot.id" />
. Esta pode não ser a maneira correta de fazer, mas funciona para mim.
display: none;
? É feio. Angular ignora elementos ocultos.