javascript - Rails 6 + Webpack document.addEventListener 不工作
问题描述
我的代码如下
// app/javascript/packs/application.js
import 'select2';
document.addEventListener(
'turbolinks:load', function() {
jQuery('#post_category_ids').select2();
}
);
// app/javascript/packs/quill.js
import Quill from 'quill';
document.addEventListener(
'turbolinks:load', function() {
var quill = new Quill('#editor', {
modules: {
toolbar: true
},
theme: 'snow'
});
quill.on('text-change', function(delta, oldDelta, source) {
$('#editorable').val(quill.container.firstChild.innerHTML);
});
}
);
quill.js 中的 addEventListener 没有触发。我可以让羽毛笔编辑器只在硬重新加载时工作。如果我将所有代码放在 application.js 中的 addEvenlistener 中,那么 quill 加载就可以了,无需硬刷新。
如何解决这个问题?
解决方案
解决了这个问题。我在 _form.html.erb 中使用了 javascript_pack_tag 助手。似乎 'turbolinks:load' 在那里不可用。我将 javascript_pack_tag 助手移动到 application.html.erb
# app/views/layouts/application.html.erb
<%= javascript_pack_tag 'quill', 'data-turbolinks-track': 'reload' if action_name == "edit" %>
...一切都按预期工作。
推荐阅读
- java - 如何在 javaFX 中使用 setOnKeyTyped
- python - Angular/Node Express + Flask API + Heroku,不确定 Procfile
- reactjs - React-Native:borderRadius 未正确应用于子组件(即 Image),但该属性应用于 touchableOpacity
- database - Ms Access 中的关键字搜索组合框
- ios - init:发送到实例的无法识别的选择器
- sql - 如何在 SQL Server 中使用 sum 进行计算
- for-loop - 使用 PIL.putdata() 和 For 循环将修改后的图像附加到新列表的问题
- laravel - Vue trix 编辑器不显示附件(图片)内容
- python - 字典中具有给定特定键值的重复值
- reactjs - 为什么数据表不能在 React JS (axios) 中显示数据