ruby-on-rails - 只需在 Rails 6 的 erb 文件中使用我自己的自定义 javascript
问题描述
我一直在谷歌上搜索并将我的头撞到墙上 2 天,现在我终于只需要问你们了。
我想简单地在 Rails 6 中创建一个 Javascript 文件,然后在 erb 文件中的按钮上调用该函数。
而已。
为什么这不是世界上最简单的事情?
在意识到我从互联网上获得了两组不同的指令,一组用于 rails 5 和以前的指令,另一组用于 rails 6,我尝试专门寻找 Rails 6 的答案。对于这样一个简单的问题,它们仍然过于复杂,并且通常是关于引入外部库。我不想要外部库。我想要我自己的javascript。我想在我的 erb 文件中调用它。
我感谢任何人帮助我解决这个问题。
解决方案
假设您application.js
已经在packs
目录中,在同一目录中创建一个新文件custom.js
,因为您希望它可以在任何地方访问,您需要将它放在window
范围内,将其添加到文件中
window.testFun = function(){
alert('Hello World!');
}
然后require
文件在application.js
require("custom")
现在您可以onclick
在应用程序的 erb 文件中调用它。
<%= link_to 'Test', '#', onclick: "testFun()" %>
或者
<%= link_to 'Test', "javascript:testFun()" %>
试试看。
推荐阅读
- react-native - 如何用玩笑测试组件的功能?
- android - 如何在 Kotlin 中使用 ViewModel 测试协程?
- excel - Excel宏或函数:如果单元格不为空,则使用循环值(来自另一张表)填充单元格范围(A列)
- javascript - 异步函数和 promise 需要很长时间才能解决
- javascript - 如何通过 normalizrjs 规范化 javascript 中的数据?
- grafana - 如果使用 iframe,如何更改 Grafana 的时间范围?
- typescript - 如何在 Typescript 中根据变量设置动态类型
- image-processing - 使用 libvips 重新缩放图像
- javascript - CS50 Finance 中的用户名检查问题
- angular - Angular 6 通过服务在 2 个组件实例之间进行通信