querySelectorAll 在 Rails 5 中不工作

querySelectorAll not working in Rails 5

我是 Coffeescript 的新手以及它在 RoR 上的工作方式,所以我很难解决这个问题:

我的资产文件中有一个名为 candidate.coffee 的文件,该文件是在脚手架命令中生成的。我这样编码:

masks = document.querySelectorAll('[data-mask]')
alert masks.length

在候选人看来,我在 form_for 一些论文输入中编码,所有这些输入都带有数据掩码属性。

<%= f.label :cep, "CEP" %>
<%= f.text_field :cep, data: { mask: 'cep' } %> 
... 

所以,问题是:我知道 Rails 达到 candidate.coffee 因为 Alert 函数有效,它给了我 0(零)长度。但我不知道为什么 document.querySelectorAll 不起作用。

我读到 assets 中的所有 .coffee 文件都已编译,但我没有找到如何 Rails 将 .coffee 文件与视图文件相关联。也就是说,这段代码在 candidate.coffee

masks = document.querySelectorAll('[data-mask]')

应该在我的项目中的所有视图文件中搜索吗?话虽如此,我确实使用了任何一种 HTML 标签作为

<script src=... script> 

在我的视图文件中,并没有改变我的 Application.js。

我该如何解决这个问题?有人可以帮助解决我的问题,即 .coffee/js 文件中的 Rails 相关功能如何与视图相关?

您需要确保文档在该脚本 运行 之前已完全加载。尝试添加

$ ->

在文件顶部并确保正确缩进其余代码,因为这是 document.ready()

的 coffeescript 等价物