Для конкретного случая использования я должен представить одну форму «по-старому». Значит, я использую форму с action = "". Ответ передается в потоковом режиме, поэтому я не перезагружаю страницу. Я полностью осознаю, что типичное приложение AngularJS не будет отправлять форму таким образом, но пока у меня нет другого выбора.
Тем не менее, я попытался заполнить некоторые скрытые поля из Angular:
<input type="hidden" name="someData" ng-model="data" /> {{data}}
Обратите внимание, правильное значение в данных отображается.
Форма выглядит как стандартная форма:
<form id="aaa" name="aaa" action="/reports/aaa.html" method="post">
...
<input type="submit" value="Export" />
</form>
Если я нажму "отправить", никакое значение не будет отправлено на сервер. Если я изменю поле ввода на тип «текст», оно будет работать как положено. Я предполагаю, что скрытое поле на самом деле не заполнено, в то время как текстовое поле фактически отображается из-за двусторонней привязки.
Любые идеи, как я могу представить скрытое поле, заполненное AngularJS?
<input type="hidden" required ng-model="data.userid" ng-init="data.userid=pivot.id" />
. Это не может быть правильным способом, но это работает для меня.
display: none;
? Это ужасно Angular игнорирует скрытые элементы.