刺激を使用しているレールで削除確認ダイアログを示す方法
6302 ワード
Turboを使用するRailsの最新バージョンに切り替えた場合は、項目を削除すると確認ダイアログが表示されないことに気付きました.刺激を使用して削除確認ダイアログを表示する方法を説明します.
刺激
あなたが働いていないならばStimulus 以前は、Hotwire(HTML over Wire)フロントエンドフレームワークスタックの一部であるベースキャンプからのJavaScriptフレームワークです.刺激の主な目的は、サーバーによってレンダリングされた静的なHTMLを強化することですconvention-over-configuration .
刺激は、DOM要素をコントローラを使用してJavaScriptオブジェクトに接続し、DOMイベントをアクションを使用してJavaScriptメソッドにフックします.HTML要素の単純な属性を使用します.
コントローラ
コントローラは、DOM要素をJavaScriptオブジェクトに接続します
刺激は連続的にページをモニターします
たとえば、あなたのHTMLがこれを含むと仮定しましょう
アクション
アクションはDOMイベントをコントローラメソッドに接続します
我々のDOM要素にボタンを加えましょう
The
方法の刺激の基本的な導入で、ユーザーが削除ボタンをクリックしたときに確認ダイアログを表示するという我々の問題を解決する方法を見てみましょう.
ここでは、各書籍の削除ボタンを使用して本を表示するコード例です.
ステップ1:Aを加える
ステップ2:Aを加える
ステップ3:刺激コントローラを追加する
それです.をクリックすると
そして、それはあなたがレールで刺激を使用して確認プロンプトを表示する方法です.
注意:ダイアログを使用して確認ダイアログを追加する簡単な方法があります
私はそれが助けてほしい.任意のミスを見つけるか、または任意のフィードバックをしている場合は、コメントでお知らせください.
刺激
あなたが働いていないならばStimulus 以前は、Hotwire(HTML over Wire)フロントエンドフレームワークスタックの一部であるベースキャンプからのJavaScriptフレームワークです.刺激の主な目的は、サーバーによってレンダリングされた静的なHTMLを強化することですconvention-over-configuration .
刺激は、DOM要素をコントローラを使用してJavaScriptオブジェクトに接続し、DOMイベントをアクションを使用してJavaScriptメソッドにフックします.HTML要素の単純な属性を使用します.
コントローラ
コントローラは、DOM要素をJavaScriptオブジェクトに接続します
data-controller
属性.JavaScriptオブジェクトには、DOM要素に追加する動作とロジックが含まれます.刺激は連続的にページをモニターします
data-controller
表示する属性.一度、それがある要素を見つけたらdata-controller
属性は、対応するコントローラクラスを見つけるために値をチェックします.そのクラスの新しいインスタンスを作成し、要素に接続します.たとえば、あなたのHTMLがこれを含むと仮定しましょう
div
による要素data-controller
属性.<div data-controller="books">
<p>Book</p>
</div>
刺激がこのDOM要素を見つけると、books_controller.js
ファイル.// src/controllers/books_controller.js
import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
}
ファイル名のマッピングにこのプロセスの詳細を学ぶことができますStimulus installation guide . アクション
アクションはDOMイベントをコントローラメソッドに接続します
data-action
属性.我々のDOM要素にボタンを加えましょう
data-controller
属性.<div data-controller="books">
<p>Book</p>
<button data-action="click->books#read">Start Reading</button>
</div>
The data-action
値click->books#read
はアクション記述子と呼ばれます.click
イベント名books
コントローラ名read
を呼び出す方法data-action="click->books#read"
刺激を指示します.ユーザーがこのボタンをクリックすると、read
メソッドbooks_controller
.// src/controllers/books_controller.js
import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
read() {
// start reading the book
}
}
The Stimulus handbook CSSスタイルに接続するHTMLクラスにこのアプローチを比較します.Just like the class attribute is a bridge connecting HTML to CSS, Stimulus’s data-controller attribute is a bridge connecting HTML to JavaScript.
Data attributes help separate content from behavior in the same way CSS separates content from presentation.
方法の刺激の基本的な導入で、ユーザーが削除ボタンをクリックしたときに確認ダイアログを表示するという我々の問題を解決する方法を見てみましょう.
ここでは、各書籍の削除ボタンを使用して本を表示するコード例です.
ステップ1:Aを加える
data-controller
親HTMLタグへの属性ステップ2:Aを加える
data-action
ボタンへの属性ステップ3:刺激コントローラを追加する
それです.をクリックすると
delete
ボタンは、刺激を最初に呼び出すdelete
メソッドbooks_controller.js
ファイル.このメソッドは、確認プロンプトを表示し、ユーザーがcancel
オプション.そして、それはあなたがレールで刺激を使用して確認プロンプトを表示する方法です.
注意:ダイアログを使用して確認ダイアログを追加する簡単な方法があります
turbo-method
and turbo-confirm
データ属性は以下のようになります:<%= link_to "delete", book, data: { turbo_method: :delete, turbo_confirm: "Are you sure?" } %>
しかし、この解決策はRailsがHTTPで同じページにあなたをリダイレクトしようとする問題になりますdelete
エラーの原因となるメソッドです.Gorailsからのクリスオリバーは、最近、これを詳細に説明しました、そして、また、回避策を示します.私はそれが助けてほしい.任意のミスを見つけるか、または任意のフィードバックをしている場合は、コメントでお知らせください.
Reference
この問題について(刺激を使用しているレールで削除確認ダイアログを示す方法), 我々は、より多くの情報をここで見つけました https://dev.to/software_writer/how-to-show-a-delete-confirmation-dialog-in-rails-using-stimulus-17iテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol