我正在尝试将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/

10-09 18:09