JSX文件中的错误:未定义gon

时间:2014-10-19 06:05:30

标签: jquery ruby-on-rails ajax react-jsx

我试图将Gon与React.js一起使用。起初,我只使用Gon传递静态数据,并且它有效!但是在jsx文件中使用Ajax(jquery)的情况下,它会抛出一个错误:

Uncaught ReferenceError: gon is not defined  

在我的控制器中,您可以看到两个功能:

share是表单的操作,因此它可以正确地将静态数据传递到新页面。

Ajax调用

search,它无法将动态数据传递回当前页面。

  def share
    @curiosity = Curiosity.friendly.find params[:curiosity_id]
    gon.curiosity = @curiosity
  end

  def search
    @curiosities = Curiosity.where("title like ?", "%#{params[:keyword]}%")
    gon.curiosities = @curiosities
    render json: gon.curiosities
  end

在我的 application.html.erb 中,我尝试了两个版本,但都无法工作:

<head>
...
<%= include_gon(init: true, watch: true) %>
<%= Gon::Base.render_data({}) %>

<%= include_gon %>

最后,在我的 .js.jsx 文件中:

$.post( 
  this.props.url, 
  { keyword: $("#searchKeyword").val() },
  function(data) {
    console.log(gon.curiosities);
    console.log(data);
  }
);

显然,我已经尝试了gon.watch,但它也没有用!有什么建议吗?

0 个答案:

没有答案