Javascript 在页面加载时将部分插入DOM

Javascript 在页面加载时将部分插入DOM,javascript,ruby-on-rails,Javascript,Ruby On Rails,我将数据存储在版本模型的“代码”列中。在show页面上,我想在页面加载时将数据注入画布的html中。当页面加载时,画布中没有内容 /ui.html.erb <%= form_for @version, remote: true do |f| %> <%= f.text_field :name %> <%= f.text_field :description %> <%= f.hidden_field :code, id: "ve

我将数据存储在版本模型的“代码”列中。在show页面上,我想在页面加载时将数据注入画布的html中。当页面加载时,画布中没有内容

/ui.html.erb

<%= form_for @version, remote: true do |f| %>       
  <%= f.text_field :name %>
  <%= f.text_field :description %>
  <%= f.hidden_field :code, id: "version-content" %>
  <%= f.submit "Save Version", id: "submit-version" %>
<% end %>
versions/create.js.erb

$('#canvas').html("<%= escape_javascript(render(partial: 'versions/code')).html_safe %>");
版本/_code.html.erb

<%= @version.code %>
versions/show.html.erb

<div id="canvas"></div>
<%= render partial: 'shared/code' %>

你确定你想做什么就做什么吗? 现在,当您访问like/:controller/show.js时,这段代码将呈现您的show.js.erb,我相信它不是呈现html变体。所以你的js没有插入内容的地方。 如果要在部分中渲染部分,请将此添加到partial guess/views/show.html.erb

<div id="canvas"></div>
<%= render partial: 'shared/code' %>

如果在两个视图中渲染局部,最好使用共享文件夹。确保视图目录的共享文件夹中有_code.html.erb。

如何访问显示操作?JS会被触发吗

您的show action链接是否包含remote:true? 或

如果没有远程链接,JS中的onload函数在哪里

show.js.erbgets仅在请求符合Javascript的情况下触发

表格:

<%= form_for @something, remote: true do |f| %>

<% end %>

你的问题是什么?哈哈,我想这可能会有帮助。我编辑了我的问题。基本上,由于某种原因,内容没有被注入。当页面加载时,canvas div是空的。我试过了,但是数据是由html组成的。所有的钱都存起来了。因此,当我输出它们时,html被输出为一堆单词,而不是html。所以也许我需要阻止rails将其转换为lt和gt符号?在需要html而不是转义的地方使用raw。哦,我明白了。好的,我正在通过一个关于/演示的表单访问该页面。您提交表单后,表单会在db中创建新版本,创建操作会将您重定向到版本显示页面。您的表单帮助程序是否包含remote:true?我在回答中添加了一些信息。我添加了remote true,但它仍然不起作用。因为远程true在create操作上,所以我需要将JS移动到create操作吗?因此,它将是create.js.erb而不是show.js.erb。是的,js文件必须与动作同名。