随着Webpacker进入Rails,我无法找到使用我的JavaScript函数的方法。
我有一个名为app-globals.js的文件,其中有一个函数需要测试:
function alerts() {
alert("TEST")
}然后我想用它作为我的观点之一:
<% = button_tag 'Button', type: 'button', onClick: 'alerts ()'%>但是,当我按下按钮时,浏览器控制台中会显示此错误:
ReferenceError: alerts is not defined
("app-globals").
app-globals.js文件放置在"app/javascript"中,在"app/ javascript/packs/application.js"中将app-globals.js移动到"app/javascript/packs",并从application.js.中移除要求("app-globals")。
在这两种情况下,仍然会出现错误。
发布于 2019-12-16 07:53:07
不过,有个解决办法。您可以:
将函数签名更改为:
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 filehttps://stackoverflow.com/questions/59349091
复制相似问题