首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Rails 6中执行自定义javascript函数

如何在Rails 6中执行自定义javascript函数
EN

Stack Overflow用户
提问于 2019-12-15 23:50:29
回答 1查看 2.7K关注 0票数 8

随着Webpacker进入Rails,我无法找到使用我的JavaScript函数的方法。

我有一个名为app-globals.js的文件,其中有一个函数需要测试:

代码语言:javascript
运行
复制
function alerts() {
  alert("TEST")
}

然后我想用它作为我的观点之一:

代码语言:javascript
运行
复制
<% = button_tag 'Button', type: 'button', onClick: 'alerts ()'%>

但是,当我按下按钮时,浏览器控制台中会显示此错误:

ReferenceError: alerts is not defined

("app-globals").

  • I将app-globals.js文件放置在"app/javascript"中,在"app/ javascript/packs/application.js"中将app-globals.js移动到"app/javascript/packs",并从application.js.

中移除要求("app-globals")。

在这两种情况下,仍然会出现错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-16 07:53:07

不过,有个解决办法。您可以:

将函数签名更改为:

代码语言:javascript
运行
复制
function myFunction() { ... }

至:

代码语言:javascript
运行
复制
window.myFunction = function() { ... }

因此,在您的代码中,我们可以这样做:-

代码语言:javascript
运行
复制
app/javascript/packs/app-globals.js

window.alerts = function() {
    alert ("TEST");
}

然后将此文件要求为application.js :-

代码语言:javascript
运行
复制
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
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59349091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档