繁体   English   中英

红宝石代码中的Javascript变量

[英]Javascript variables in ruby code

在我的RoR项目中,我得到了html页面,在这里我使用javascript更改了div的背景图像。 Javascript函数向我发送了索引,我想使用该索引来获取ruby数组的元素。

查看我的代码

function drawNewProject (index){
  console.log(<%= 'index' %>)
  <% index = 'index'  %>
  <% @existProjects = Admin::Project.order('weight') %>
  <% @existProject = @existProjects[index] %>

  var image = document.getElementById('block_one')

  image.style.backgroundImage="url('<%=  @existProject.image(:large) %>')";

}

但是这条线

<% @existProject = @existProjects[index] %>

给我错误

no implicit conversion of String into Integer

你知道该怎么做吗? 谢谢

您必须认为<%= erb %>块在发送到浏览器之前已在服务器中执行,并且一旦运行,就运行javascript。

您的浏览器不知道ruby或php或其他任何内容……它只是接收html和js(无论是静态文件还是动态生成的js)并运行它。

这意味着必须在渲染时知道所有数据。 如果您的应用程序依赖于动态数据或用户交互,则必须执行ajax请求并使用正确的js传递回调用,以由浏览器运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM