随着 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"
and in "app/ javascript/packs/application.js"
我放置了 require (“app-globals”)。
我将 app-globals.js 移至"app/javascript/packs"
并从中删除了要求(“app-globals”)application.js
.
无论哪种情况,仍然会出现错误。
不过,有一个解决方法。你可以:
更改函数签名:
function myFunction() { ... }
to:
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)