Quantcast
Channel: hachi8833の記事一覧|TechRacho by BPS株式会社
Viewing all articles
Browse latest Browse all 1759

Better Stimulusガイド 08: Rails-ujs(翻訳)

$
0
0

概要

原著者の許諾を得て翻訳・公開いたします。

フォームをプログラムで送信する

<div data-controller="remote-form">
  <%= form_with(model: @article, html: { data: { action: "ajax:success->remote-form#onPostSuccess" } }) do |f| %>
    <%= select_tag "author", options_from_collection_for_select(@people, "id", "name"),
                   data: { action: "change->remote-form#update" } %>
  <% end %>
</div>

動かない

import { Controller } from "stimulus";

export default class extends Controller {
  onPostSuccess(event) {
    console.log("success!");
  }

  update() {
    this.element.submit();
  }
}

動く

import Rails from "@rails/ujs";
import { Controller } from "stimulus";

export default class extends Controller {
  onPostSuccess(event) {
    console.log("success!");
  }

  update() {
    Rails.fire(this.element, 'submit');
  }
}

解説

Rails-ujsは、<form>要素にdata-remote="true"属性を持つフォーム送信イベントをインターセプトしますが、HTMLFormElement.submit()メソッドが呼び出されてもイベントは発生しません

関連資料

関連記事

Better Stimulusガイド:アーキテクチャ1: アプリケーションコントローラ(翻訳)

The post Better Stimulusガイド 08: Rails-ujs(翻訳) first appeared on TechRacho.


Viewing all articles
Browse latest Browse all 1759

Trending Articles