如何将params隐藏在分页JS脚本中?

时间:2012-12-29 09:52:27

标签: javascript jquery ruby-on-rails ruby ajax

我有以下JS脚本来加载更多用户并过滤它们:

  <script>
    var USERS_PER_PAGE = <%= @users_per_page %>;
    var user_count = USERS_PER_PAGE;

    function checkScroll() {
      if (nearBottomOfPage()) {
        $('#loading_more_'+(user_count-USERS_PER_PAGE)).fadeTo(200, 1);
        $.ajax({
           type: "GET",
           url: "/u?start=" + user_count + "&t="<%= params[:t] %> + "&f="<%= params[:f] %>,
           dataType: "script"
         });
        user_count += USERS_PER_PAGE;
      } else {
        setTimeout(checkScroll, 250);
      }
    }
    ...

参数也可以是empty。现在我收到错误:Uncaught SyntaxError: Unexpected identifier

enter image description here

我应该如何合并此url的参数?

1 个答案:

答案 0 :(得分:1)

首先添加路由以将此路由连接到控制器和操作

# routes.rb
match "/u" => "foo#bar"

然后你可以做这样的事情

$.ajax({
  type: 'GET',
  url: '<%=j u_path(start: USERS_PER_PAGE, t: ceo, f: h) %>',
  // ...
});

注意:确保在使用ERb输入JavaScript时使用<%=j ... %>。这将正确地转义javascript值。