コンポーネント
← すべてのコンポーネント

動的フィールド行

stimeo--nested-form

fields_for の明細行をテンプレートから追加・削除する Headless 版 cocoon。

  • Rails / Turbo

stimeo--nested-form コントローラは、Rails の fields_for + accepts_nested_attributes_for における cocoon / nested_form gem の Headless 後継です。追加時は <template> を複製して __INDEX__ プレースホルダを一意の連番へ置換して挿入し、削除時は未保存行を DOM から除去、 _destroy フラグを持つ既存行はフラグを 1 にして hidden 化(送信時に Rails が破棄)します。行の状態は DOM のみに保持し(モジュールスコープのカウンタを持たない)、connect は Turbo 遷移後も冪等に再計算、削除ボタンはイベント委譲で扱うため複製行も個別結線なしで動作します。追加時は新規行の先頭コントロールへ、削除時は隣接行へフォーカスを移し(WCAG 2.2 2.4.3)、announce と countMessage を設定すると件数変化を共有の stimeo--announcer で告知します(WCAG 2.2 4.1.3)。 min/max を制御し、stimeo--nested-form:add / :remove を発火します。ライブラリは挙動のみを提供し、サーバ側の nested 属性と見た目は利用側が持ちます。

実行中