javascript - Rails 项目中表单上下文中的 'data-provider' 是什么?

标签 javascript ruby-on-rails twitter-bootstrap

免责声明:这是我的第一个严肃的业余项目。总的来说,我对 Rails 和编程都是菜鸟,但我正在尽力学习。

我正在尝试在 Rails 项目的一个表单中实现所见即所得文本编辑器。用户可以创建具有“body”text_area 字段的“event”对象。现在,描述表单忽略所有用户格式,我想解决这个问题。我正在尝试实现 Summernote没有太多运气。我正在使用 Summernote-rails gem,但这部分文档给我带来了麻烦:

“如果您不使用 simple_form,则只需自行将 data-provider="summernote"添加到输入字段即可。”

我对此进行了无休止的研究,但我无法弄清楚。什么是“数据提供者”以及如何正确实现它?我的困惑源于我以前从未见过这个“数据提供者”。它是 HTML 表单属性吗?与 Bootstrap 相关吗?感谢任何能为我澄清这一点的人!

<div class="container">
<div class="col-md-8 col-md-offset-2">
    <div class="well">
    <div class="form-area">
        <h3>Create an Event</h3>
        <%= form_for @event, html: { multipart: true } do |f| %>

            <div class="form-group">
                <%= f.label :image %>
                <%= f.file_field :image %>
            </div>

            <div class="form-group">
                <%= f.label :title, "Title of the event" %>
                <%= f.text_area :title, rows: 1, class: "form-control" %>
            </div>

            <div class="form-group">
                <%= f.label :date %>
                <%= f.text_field :date, class: "form-control" %>
            </div>

            <div class="form-group">
                <%= f.label :time, "Start Time" %>
                <%= f.text_field :time, class: "form-control" %>

            <br>

            <div class="form-group">
                <%= f.label :body, "Include all the details about your event here." %>
                <%= f.text_area :body, rows: 10, class: "form-control" %>
            </div>
            <div class="form-group">
                <%= f.label :category_id %>
                <%= f.select(:category_id, Category.all.map{ |f| [f.name, f.id] }, {}, { class: "form-control", id: "select" }) %>
            </div>
            <%= f.submit class: "btn btn-primary" %>
        <% end %>
    </div>
</div>

我想将Summernote添加到这部分代码中:

<div class="form-group">
                <%= f.label :body, "Include all the details about your event here." %>
                <%= f.text_area :body, rows: 10, class: "form-control" %>
</div>

我遵循了 Summernote-rails gem 的说明,我的 application.js 看起来像这样

//= require jquery
//= require jquery_ujs
//= require google_analytics
//= require jquery.turbolinks
//= require pickadate/picker 
//= require pickadate/picker.date 
//= require pickadate/picker.time 
//= require bootstrap-sprockets
//= require bootstrap
//= require summernote
//= require turbolinks
//= require_tree .


$('[data-provider="summernote"]').each(function(){
  $(this).summernote({ });
})

最佳答案

你是对的,data-provider是一个HTML属性(尽管它与Bootstrap无关)。 HTML5 引入了“data-”前缀属性作为存储与元素相关的数据的约定,否则这些数据在之前的版本中将被归入类名。此外,您按照说明在 application.js 中编写的一点 JavaScript 实际上是一个选择器,用于设置具有该特定属性的所有对象(使用自定义方法)。您真正要做的就是使用更高级(或至少更具体定制)的类或 ID 来进行选择。

有关 HTML5 数据属性的基本概述,请参阅 this article .

关于javascript - Rails 项目中表单上下文中的 'data-provider' 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32982214/

相关文章:

javascript - 谷歌浏览器移动版 (Nexus 7) |表单提交不起作用

css - Bootstrap 3.x 中的菜单响应

javascript - 在 asp.net web 表单中单击按钮时避免回发

javascript - 在 dataTables 中使用 ajax.reload() 保存输入文本

ruby-on-rails - Rails 的 Turbolinks 未激活

ruby-on-rails - Rails - Mina - 无法在 database.yml 文件中加载环境变量

javascript - highland.js 异步数组到值流

javascript - 如何用正则表达式匹配JS中后面的字符串,但不包括单词字符?

ruby-on-rails - 从 Engine 类访问 url_helper

jquery - 如何使用自动填充字段根据用户选择填写整个表单?