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

2023-11-23

随着 Webpacker 引入 Ruby On Rails,我找不到使用 JavaScript 函数的方法。

我有一个名为app-globals.js具有要测试的功能:

function alerts() {
  alert("TEST")
}

然后我想在我的观点之一中使用它:

<% = button_tag 'Button', type: 'button', onClick: 'alerts ()'%>

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

ReferenceError: alerts is not defined

  1. 我把app-globals.js文件输入"app/javascript" and in "app/ javascript/packs/application.js"我放置了 require (“app-globals”)。

  2. 我将 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(使用前将#替换为@)

如何在 Rails 6 中执行自定义 JavaScript 函数 的相关文章

  • React js Stripe 结账不起作用

    我正在尝试在 React js 应用程序中呈现条带结账默认表单
  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • 为什么 JavaScript base-36 转换看起来不明确

    我目前正在编写一段使用 Base 36 编码的 JavaScript 我遇到了这个问题 parseInt welcomeback 36 toString 36 看来要回归了 welcomebacg 我在 Chrome 开发者控制台和 Nod
  • Web 串行 API - 未捕获(承诺中)DOMException:无法打开串行端口/所需成员 baudRate 未定义

    下面的代码可以在我的 Xubuntu 机器上运行 但现在我在 Kubuntu 上 它不再工作了 它不会打开端口 Arduino IDE 工作正常 可以向开发板写入代码 并且我可以在 Chrome 中选择设备 Arduino Uno 但当我尝
  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 如何使用sunspot_rails gem 搜索相关文章

    我有一个迷你博客应用程序 我希望用户查看与他们在文章显示页面中阅读的内容相关的文章 没有 sunspot rails gem 我会做这样的事情 在我的模型中 def self related search query join AND fi
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • Node.js:如何在检索数据(块)时关闭响应/请求

    我正在用 node js 构建一个应用程序 它加载多个页面并分析内容 因为 node js 发送块 所以我可以分析这些块 如果一个块包含例如索引 nofollow 我想关闭该连接并继续其余部分 var host example com to
  • JavaScript 重定向到新窗口

    我有以下代码 它根据下拉列表的值重定向到页面 我如何使其在新窗口中打开 function goto form var index form select selectedIndex if form select options index
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • 如何在类似控制台的环境中运行 JavaScript?

    我正在尝试遵循这里的示例 http eloquentjavascript net chapter2 html http eloquentjavascript net chapter2 html and print blah 在浏览器中运行时
  • 在 vue.js 中访问数组对象属性

    给定以下数组vue js packageMaps Object packageMap 0 Object Id 16 PackageType flag list ProductCode F BannerBase packageMap 1 Ob
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • Javascript 纪元时间(以天为单位)

    我需要以天为单位的纪元时间 迄今为止 我已经看到过有关如何翻译它的帖子 但几天后就没有了 我对纪元时间很不好 我怎么能得到这个 我需要以天为单位的纪元时间 我将解释为您想要自纪元以来的天数 纪元本身是第 0 天 或第 1 天的开始 无论您如
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28

随机推荐

  • 打开资源管理器 - java

    在我的 java swing 应用程序之一中 我动态打开 Windows 共享文件夹 现在我想使用资源管理器打开它 所以你们能帮我解决这个问题吗 如果您使用的是 Java 6 最好的方法是使用Desktop Desktop getDeskt
  • 首先是模板实例化还是宏扩展?

    让我们考虑一个像这样的代码示例 它只是一个结合的人为示例define and template 不要寻找任何意义它 define COMMA template
  • 理解错误:特征“futures::future::Future”没有为“()”实现

    这个问题是关于如何阅读 Rust 文档并提高我对 Rust 的理解 从而了解如何解决这个特定的编译器错误 我读过东京文档并尝试了许多examples 在编写自己的代码时 我经常遇到我不理解的编译器错误 并且经常发现我可以修复代码 但不理解w
  • 从另一个线程或进程更新 Gtk.ProgressBar

    我有一个带有进度条的 GUI 它应该显示第二个线程所做的工作的进度 我希望有一个事件 线程可以在工作的每一步立即发送到 GUI 进度条 但我不明白这是如何做到的 Python本身提供了一个Event用于线程情况的类 但它会阻塞 GUI 主线
  • VectorAssembler不支持StringType类型scala Spark Convert

    我有一个包含字符串列的数据框 我计划将其用作使用 Spark 和 scala 的 k 均值的输入 我使用以下方法转换数据帧的字符串类型列 val toDouble udf Double String toDouble val analysi
  • 如何根据url hash执行js函数 url#nameoffunction

    我看到一些网站根据 URL 中的内容执行 JavaScript 函数 例如 当我访问时http domain com jobs test 然后网站执行基于 test的函数 我可以通过检查 location href 来做到这一点 但是有更好
  • 通信链路故障 最后发送到服务器的数据包是在 1 毫秒前。

    我尝试连接到mysql database但我失败了并且显示了这个错误 Communications link failure Last packet sent to the server was 1 ms ago 这是我的代码 任何人都可以
  • 如何将 xsi:type 定义为 XML 模式中的属性?

    我有一个 XML 我想为其编写架构定义 问题是我不知道如何将 xsi type 定义为属性 这是 XML 元素
  • 如何在.net中查找当前线程的最大堆栈大小?

    如何找到当前线程的最大堆栈大小 我在从 MMC UI 而不是从 Powershell 命令行 控制台 执行函数时遇到堆栈溢出异常 所以我猜测它与 UI 线程中分配的默认堆栈大小与 Powershell 命令行 控制台 中分配的默认堆栈大小有
  • gridview rowCommand 中的行索引

    只是想将值从变量转移到另一个变量 protected void gvVariableDetail RowCommand object sender GridViewCommandEventArgs e if e CommandName Ed
  • XNA 和 GUI 控件(例如 xaml 和 xna)

    有没有办法在 xna 中获取支持边距等的文本框 标签和其他 wpf 控件 并根据窗口大小进行伸缩 你可能会给CeGui a shot 如果您的游戏需要高级 GUI 功能 CeGui 可能正好适合您 撇开市场因素不谈 这是一个非常好的 GUI
  • AlarmManager 在 Android 4.4.2 中停止工作(使用 SetExact())

    我在代码中设置了一个在特定时间响起的闹钟 警报机制在 SDK 这是我设置闹钟的代码 public void SetAlarm Context context Long executionTime AlarmManager am AlarmM
  • 让 Git 使用代理服务器 - 失败并显示“请求超时”

    如何让 Git 使用代理服务器 我需要从 Git 服务器检查代码 但每次都显示 请求超时 我该如何解决这个问题 或者 如何设置代理服务器 使用的命令 git config global http proxy http proxyuser e
  • 有多少用户连接到我的 Shiny 应用程序?

    我正在开发一个闪亮的应用程序shinydashboard在应用程序的某个地方 我想显示一条通知 告诉用户有多少其他用户同时连接到该应用程序 我想出了第一段似乎有效的代码 library shiny ui fluidPage uiOutput
  • 单元测试插入/更新/删除

    我用谷歌搜索了一下 并没有真正找到我需要的答案 我正在为客户使用 C SQL Server 和 LINQ 开发一个网页 我希望用户能够互相发送消息 所以我所做的是使用实际进入数据库的数据对其进行单元测试 问题是我现在依赖于至少有 2 个我知
  • PowerShell v5 - 如何将模块安装到没有互联网连接的计算机上?

    我有一台机器 v3 互联网 无管理员访问权限 我用它下载 WMF 5 0 并设置另一台机器 v5 无互联网 管理员访问权限 现在 我想在运行 v5 但没有互联网连接的计算机上使用 PowerShellGet 中的一些模块 我需要一个选项来下
  • 如何修复 iOS Firestore Increment() 上的错误“‘增量’的使用不明确”

    我在尝试使用 firebase 时收到编译器错误FieldValue increment 1 在 iOS 中使用 swift 该错误仅表示 增量 的使用不明确 我已将所有 pod 更新为所使用的所有 firebase pod 的当前版本 更
  • FFMPEG:使用绘图文本以及自动换行和填充创建视频

    我正在努力使用绘图文本过滤器从文本创建视频 输出视频我可以看到文本溢出而不是换行 有什么方法可以存档自动换行并将内部填充设置为视频 下面是我用来从文本生成视频的片段 ffmpeg exe f lavfi i color c white s
  • 在 numpy 数组中相乘

    我试图将二维数组中的每个项乘以一维数组中的相应项 如果我想将每一列乘以一维数组 这非常容易 如下所示numpy 乘法功能 但我想做相反的事情 将行中的每一项相乘 换句话说 我想乘以 1 2 3 0 4 5 6 1 7 8 9 2 and g
  • 如何在 Rails 6 中执行自定义 JavaScript 函数

    随着 Webpacker 引入 Ruby On Rails 我找不到使用 JavaScript 函数的方法 我有一个名为app globals js具有要测试的功能 function alerts alert TEST 然后我想在我的观点之