Per un caso d'uso specifico devo presentare un unico modulo alla "vecchia maniera". Significa che uso un modulo con action = "". La risposta è trasmessa in streaming, quindi non sto ricaricando la pagina. Sono pienamente consapevole del fatto che una tipica app AngularJS non invierebbe un modulo in questo modo, ma finora non ho altra scelta.
Detto questo, ho cercato di popolare alcuni campi nascosti da Angular:
<input type="hidden" name="someData" ng-model="data" /> {{data}}
Si noti che viene mostrato il valore corretto nei dati.
Il modulo si presenta come un modulo standard:
<form id="aaa" name="aaa" action="/reports/aaa.html" method="post">
...
<input type="submit" value="Export" />
</form>
Se premo invio, nessun valore viene inviato al server. Se cambio il campo di input per digitare "testo", funziona come previsto. La mia ipotesi è che il campo nascosto non sia realmente popolato, mentre il campo di testo viene effettivamente visualizzato a causa della rilegatura bidirezionale.
Qualche idea su come posso inviare un campo nascosto popolato da AngularJS?
<input type="hidden" required ng-model="data.userid" ng-init="data.userid=pivot.id" />
. Questo potrebbe non essere il modo corretto di fare ma funziona per me.
display: none;
,? È brutto però. Angolare ignora gli elementi nascosti.