javascript - 将实例变量传递给 js Rails

标签 javascript jquery ruby-on-rails asset-pipeline

在我的搜索 Controller 中,我有一个实例变量,@results .我将它设置为返回一个虚拟结果,'foo' .

在我的 search.html.erb View 中...我设置 window.results = <%= raw @results.to_json %> .

在我的 search.js Assets 文件的顶部,我 console.log(results)得到 undefined ,但是当我在页面加载后进入 devtools 时,结果填充了 'foo' . console.log 语句也包含在一个 jquery 就绪函数中。

什么给了?

最佳答案

Rails Assets 是预编译的,因此它们无法访问来自 Controller 的实例变量。使用 script 标记将 Javascript 直接嵌入到您的 View 中,并像您一样访问 @results。您还可以发起对外部 Javascript 文件的调用。

关于javascript - 将实例变量传递给 js Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27974898/

相关文章:

javascript - jQuery:遍历 JSON 文档

javascript - 如何用ajax响应替换html元素?

javascript - 将 jQuery JSON 中的特定数据获取到变量中

javascript - 尽管有 $event.stopPropagation,但在 <a> 标记内单击时会发生重定向

javascript - 导入 React 与 React,{ 组件 }

javascript - 优先考虑 AJAX 调用

javascript - jQuery 中的 Canvas 对象,可能吗?

ruby-on-rails - 在 Controller 中渲染 View 后出现 nil 的 NoMethodError

ruby-on-rails - 不会为 Heroku 设置 Figaro 环境变量

ruby-on-rails -/YYYY/MM/Title-Slug URL 结构与 Friendly_Id Solution Chokes on #edit