特定のユースケースでは、単一のフォームを「古い方法」で送信する必要があります。つまり、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は隠された要素を無視します。