レコードを表示するループがあり、すべての行に送信ボタンを追加したいと考えています。送信する必要があるのは、ユーザーがボタンのいずれかを選択したときに保持したいフォームが下部にあるためです。
deferなどの使用に関するコメントを見てきましたが、何もうまくいかないようです。私が試している現在の送信コードは次のとおりです。
<input t:id="deleteItem" t:type="submit" t:context="item.number.content" value="deleteItem" class="deleteItem" />
コンテキストを拡張するには: リストした現在のコンテキストは、アイテム オブジェクト内の数値オブジェクト内の単なる文字列です。実際、上記のコードでは問題なく表示されています。
これを別の方法でテストするために、item.number.content を getContext() メソッドに置き換え、ハードコーディングされた 1 を返すようにしました。次に、このメソッドをデバッグし、ページが送信されたときではなく、ページが送信されたときに呼び出されることを確認します。期待どおりにレンダリングされます。
ボタンが押されるまで、コンテキストは読み込まれません。私は何か誤解していますか??
編集:
したがって、私の問題はコンテキスト値を取得することです。たとえば、私のコードを見てください:
<t:loop source="itemsList" value="item" formState="none">
<!-- Display info here -->
<input t:id="deleteItem" t:type="submit" t:context="myContext" value="deleteItem" class="deleteItem" />
</t:loop>
getMyContext の定義は次のとおりです。
public String getMyContext() {
String context = item.getNumber().getContent();
return context;
}
問題は、submit が押された時点で変数「item」が null になるまでメソッドが呼び出されないことです。送信ボタンがレンダリングされるたびに getMyContext が呼び出されることを期待していました。送信が選択されると、適切なコンテキストでイベントがトリガーされます。それは理にかなっていますか?