我正在尝试将gon与rails 4一起使用,但它似乎根本不起作用。
在application.html.erb中,我有
<%= include_gon(:init => true) %>
我尝试使用init语句和不使用init语句,也尝试将其放置在控制器视图中
在我的控制器中
gon.item_status = "delivered"
respond_to do |format|
format.json { render json: item, location: item }
end
在我的咖啡脚本中,我有
$ ->
$("a[data-remote]").on "ajax:success", (e, data, status, xhr) ->
console.log(item_status)
在控制台中,我看到未定义,在窗口源中,看到以下内容:
//<![CDATA[
window.gon={};
//]]>
因此,我可以看到gon已加载并正在尝试获取变量,但是没有传递给它。我的控制器代码是否存在问题,或者Rails 4是否存在更广泛的问题?
最佳答案
您需要使用gon对象访问JS中的gon变量-例如gon.item_status
对于AJAX请求,您需要使用gon.watch“监视” gon数组,它不会使用AJAX请求自动更新head标签中的JS。
参见gem主页:
https://github.com/gazay/gon
关于javascript - Rails 4和Gon-无法正常工作? window.gon = {};,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26733677/