0

正如 hotwire登录页面上的示例所提供的,表单清除过程对我来说是不透明的,也不起作用。

安装了运行 ruby​​ 3.1 的 rails 7.0.1。刺激控制器设置为:

import { Controller } from  "@hotwired/stimulus"      // "stimulus"

export default class extends Controller {
  reset() {
    this.element.reset()
  }
}

注意:DHH的例子只调用刺激,而rails预装的hello-controller.js指的是@hotwired/stimulus. 两个 syntassi 都试图无济于事。

表单元素的结构如下:

  <%= turbo_frame_tag 'new_message', target: '_top' do %>
    <%= form_with(model: [ @message.room, @message ], data: { controller: "reset_form", action: "turbo:submit-end->reset_form#reset" } ) do |form| %>
        <%= form.text_field :content, class: "block shadow rounded-md border border-gray-200 outline-none px-3 py-2 mt-2 w-full" %>
        <%= form.submit 'send' %>
    <% end %>

我看到提交动作(实际上是它的结尾)是连接。但它没有发生,而新记录已创建并且 UI 按预期更新。

为什么会失败以及应该如何解决?

4

1 回答 1

1

控制器名为reset_form_controller.js.

然而,这被错误地用下划线引用

data: { controller: "reset_form", action: "turbo:submit-end->reset_form#reset" }

什么时候reset form应该用破折号

data: { controller: "reset-form", action: "turbo:submit-end->reset-form#reset" }```
于 2022-01-17T07:01:31.307 回答