gpt4 book ai didi

javascript - 如何将变量从 Rails 传递到 Ajax

转载 作者:数据小太阳 更新时间:2023-10-29 08:07:35 24 4
gpt4 key购买 nike

我正在尝试使用 Ruby on Rails 应用程序实现进度条 (Javascript),但我无法将值从 Controller 传递到 JS 以更新进度条。

最初,我尝试使用一个简单的全局变量 ($count),但一旦加载,该变量始终相同。 JS端没有更新。

编辑:

现在我正在使用 gon gem 来传递值。但我只得到第一个值(在 Controller 启动时设置)。当我调用由单击按钮触发的方法时,值会更新,但 gon 变量始终相同。也许是 rails/controller 中的错误?

我看到了一个示例,其中包含一种将变量公开给 gon 的方法,但它不起作用。

注意:如果我去掉搜索前的初始化if,点击搜索时JS端显示“gon variable undefined”

示例代码:application_controller.rb

def application 
@count =0 #gon assumes only this value
exposeUnProcessedJobToJavascript

if params[:search]

while(@count < 10)
exposeUnProcessedJobToJavascript
sleep 3
@count +=1
end
end
def exposeUnProcessedJobToJavascript
gon.watch.job = @count
end
end

应用程序.js.erb

function addJobWatchers() {

if (gon.job != undefined) {

gon.watch('job', {
interval: 1000
}, updateProcessingJob);
}
}

function updateProcessingJob(job) {

if (job) {
console.log("JOB: " + job);
}
}

$(document).on('page:change', function() {
$("#search_button").click(function() {
console.log("click search");
if (typeof gon !== 'undefined') {
addJobWatchers();
}
});});

最佳答案

这里有一个 gem 可以帮助您做到这一点。它有大量的解释和示例来帮助您入门。

https://github.com/gazay/gon

关于javascript - 如何将变量从 Rails 传递到 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33711516/

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