gpt4 book ai didi

javascript - Ruby on Rails - 将 JavaScript 变量从 Controller 发送到外部 Javascript Assets 文件

转载 作者:可可西里 更新时间:2023-11-01 02:23:01 25 4
gpt4 key购买 nike

我正在用 Ruby on Rails 创建一个网站。我有一个 Controller Action ,可以呈现如下 View :

def show
time_left = Time.now.to_i - 3.hours.to_i
@character = current_user.characters.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @character }
end
end

这很好,因为它按照我喜欢的方式呈现 show.html.erb。但是,我想以某种方式将 time_left 作为 Javascript 变量传递给 View ,因为这个值由倒计时 JQuery 插件使用。

我可以在 HTML 页面上放置一个 javascript block ,然后像这样打印一个实例变量:

<script type="javascript"> $('#countdown').countdown('<%= @time_left =>')</script>

但是我想将我所有的 JS 保存在一个外部文件中,并且不在页面上,任何人都可以就如何实现这个提出一些建议吗?

最佳答案

是的,你可以!

将您的 JS 代码重写为带有一个参数(时间限制)的函数,并将其放入某个外部文件中。然后您可以从 View 中调用该函数并将该 @timeleft 变量作为 JS 函数参数传递。

简短示例:

#controller
@time_left = Time.now.to_i - 3.hours.to_i

.

#javascript
function count_down(time_left) {
$('#countdown').countdown(time_left)
}

.

#view
<%=javascript_tag "count_down(#{@time_left})" -%>

javascript_tag

示例未经测试,它只是一个想法而不是完整的解决方案。不要忘记加载那个 JS 文件。您可以使用其他 JS rails 助手 javascript_include_tag .

关于javascript - Ruby on Rails - 将 JavaScript 变量从 Controller 发送到外部 Javascript Assets 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2721880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com