随着Webpacker到达Ruby On Rails,我找不到使用我的JavaScript函数的方法。
我有一个app-globals.js
要测试的函数文件:
function alerts() {
alert("TEST")
}
然后,我想在其中一种视图中使用它:
<% = button_tag 'Button', type: 'button', onClick: 'alerts ()'%>
但是当我按下按钮时,该错误显示在浏览器控制台中:
ReferenceError: alerts is not defined
我将app-globals.js
文件放在其中,"app/javascript"
并在其中"app/ javascript/packs/application.js"
放置了require(“ app-globals”)。
我将app-globals.js移至,"app/javascript/packs"
并从中删除了require(“ app-globals”)application.js
。
无论哪种情况,仍然会出现错误。
不过,有一种解决方法。您可以:
从以下位置更改功能签名:
function myFunction() { ... }
至:
window.myFunction = function() { ... }
因此,在您的代码中,我们可以执行以下操作:
app/javascript/packs/app-globals.js
window.alerts = function() {
alert ("TEST");
}
然后要求这个文件到application.js:-
app/javascript/packs/application.js
require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("jquery")
import $ from 'jquery'
window.jQuery = $;
window.$ = $;
require("packs/app-globals") ## require your file
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句