如何将模型数据传递给JavaScript(Rails)
我有一个MVC架构,我想维护。在我看来,我有一个按钮,将导致棋盘根据棋盘位置数据库中的某一行进行更新。 目前,我正在将数据(国际象棋位置)输入一个隐藏的范围,然后用JavaScript访问该范围。显然,这是jank。如果再次单击该按钮,我也会很难更新下一个位置的跨度。 将模型传递到JavaScript的好方法是什么?在我的控制器中,我将模型加载到一个变量中,我可以在JavaScript中使用它吗?如果是,怎么做 HTML: JS:如何将模型数据传递给JavaScript(Rails),javascript,ruby-on-rails,model-view-controller,model,Javascript,Ruby On Rails,Model View Controller,Model,我有一个MVC架构,我想维护。在我看来,我有一个按钮,将导致棋盘根据棋盘位置数据库中的某一行进行更新。 目前,我正在将数据(国际象棋位置)输入一个隐藏的范围,然后用JavaScript访问该范围。显然,这是jank。如果再次单击该按钮,我也会很难更新下一个位置的跨度。 将模型传递到JavaScript的好方法是什么?在我的控制器中,我将模型加载到一个变量中,我可以在JavaScript中使用它吗?如果是,怎么做 HTML: JS: 一个好的选择是使用AJAX。 也许谷歌会对Ruby AJAX和r
一个好的选择是使用AJAX。 也许谷歌会对Ruby AJAX和repsondèu进行一些介绍 您可以通过带有get请求的javascript发送数据,或者设置指向helper的链接。 对于get请求,您将数据发送到的url需要添加您创建的路由 获取请求示例: 在单击处理程序中,
$.get(/new_任务)代码>
在路线上,,
get'/new_task'=>“taskcontroller#new'
链接到示例:
<%= link_to 'New Task', new_task_path, remote: true %>
从respond_to块返回的数据将被限定为与控制器操作名相同的部分。
因此,对于本例,您可能有一个任务文件夹,其中包含一个新的.erb
植入新的分部代码,当数据发生更改时,它会自动刷新
手册的页面可能会有点干,但这两页应该会有帮助
你能分享相关的代码吗?有很多方法-数据属性,使用JSON而不是janky JS.erb请求(服务器会为每个动作传回线路板的状态,这是唯一的真理,你只需重新绘制即可),将JSON作为带有脚本标记的全局变量插入…@RockwellRice我添加了一些代码,您可能会发现这些代码有助于分析。我和其他人谈过,他们说我基本上在做数据属性的事情。
module AppsHelper
def generate_tactic(model)
id = Random.new.rand(1..Tactic.all.size)
t = model.find(id)
@tactic = [t.fen, t.solution]
end
end
let tactic, tg;
window.onload = function() {
tactic = document.getElementById("tactic_info").textContent;
tg = document.getElementById("tactic_generator");
tg.onclick = function c() {
console.log(tactic.split(',', 2));
};
};
<%= link_to 'New Task', new_task_path, remote: true %>
def new
. . .
work with data your wish to gather/alter/pass back
. . .
respond_to do |format|
format.html
format.json
end
end