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

Chorder · June 10, 2019 · Last by levi0214 replied at July 02, 2020 · 1228 hits

在 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 标准做法。

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

Reply to levi0214

我也出现了楼主这个问题 根据您的指引 去 gerails 查找关于 ActiveStorage 的相关课程 只有三个视频 其中一个是教怎么使用 ActiveStorage 的 其他两个跟问题基本不沾边... 并没有您说的关于 direct upload 的事件相关内容 T-T

You need to Sign in before reply, if you don't have an account, please Sign up first.