首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在javascript中未定义gon错误

在javascript中未定义gon错误
EN

Stack Overflow用户
提问于 2013-06-29 00:07:16
回答 10查看 8.6K关注 0票数 6

很简单的问题。我在试着使用gon。我在控制器中设置变量,如下所示:

代码语言:javascript
复制
gon.preference = "hello"

在我的.js.erb文件中,我尝试这样使用变量:

代码语言:javascript
复制
console.log(gon.preference)

但是我得到了一个错误,说“没有定义gon”。可能的问题是什么?显然,rails可以识别出有一个gon变量。.js.erb文件位于我的assets/javascripts目录中。我尝试将文件名改为.js (尽管我并不认为这会有什么不同)。显然没有变化。

不知道为什么gon不能工作!

帮助?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-07-03 03:20:37

这里的答案很好,但却弄清楚了到底是怎么回事。我在没有布局的情况下多次渲染特定视图。但是,因为我在重新呈现这个视图时没有呈现布局,所以application.html.erb中的<%= include_gon %>行是无用的。

我将<%= include_gon %>直接放入我正在渲染的视图中,现在一切都正常了!

票数 13
EN

Stack Overflow用户

发布于 2015-02-25 20:13:52

我发现把这个加到你的头上会很有帮助。

代码语言:javascript
复制
<%= include_gon(:init => true) %>

同样适用于Rails4。

票数 4
EN

Stack Overflow用户

发布于 2013-06-29 01:49:21

我创建了一个测试项目来尝试查看我是否有相同的问题,我做到了!

解决方案在application.html.erb中的标头中添加标记<%= include_gon %>

代码语言:javascript
复制
app/views/layouts/application.html.erb

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
  <title>Test</title>
  <%= include_gon %>
  <%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
  <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
  <%= csrf_meta_tags %>
</head>

在视图中:

代码语言:javascript
复制
console.log(gon.preference)

在控制器中:

代码语言:javascript
复制
gon.preference = "hello"

输出:

阅读更多here

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17369063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档