新手问题 [ActiveStorage 使用问题] Direct Upload 中定义的事件不触发,如何解决?

Chorder · 2019年06月10日 · 最后由 levi0214 回复于 2019年06月11日 · 217 次阅读

在assets/javascripts中加入了direct_upload.js文件,并在其中加入了以下两个事件监听器:

document.addEventListener("turbolinks:load", function() {
  console.log("Turbolinks Loaded.");
})

document.addEventListener("direct-upload:initialize", event => {
    const { target, detail } = event
    const { id, file } = detail
    target.insertAdjacentHTML("beforebegin", `
          <div id="direct-upload-${id}" class="direct-upload direct-upload--pending">
            <div id="direct-upload-progress-${id}" class="direct-upload__progress" style="width: 0%"></div>
            <span class="direct-upload__filename">${file.name}</span>
          </div>
        `)
})

在确定application.js中存在引入activestorage的语句//= require activestorage之后,发现turbolinks:load事件能够触发其中定义的函数,而direct-upload:initialize事件则没有触发。

以上代码全都来自Rails Guides顺便提一下:Rails Guides中文这部分翻译内容暂缺,应该更新了。

试问可能是什么原因所导致?

如果可能,感谢分享您的ActiveStorage标准做法。

共收到 1 条回复

GoRails上有一集讲ActiveStorage的direct upload,你可以跟一遍,看有没有漏掉什么

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册