代码之家  ›  专栏  ›  技术社区  ›  tehfailsafe

jquery基于rails的调用进行追加或替换?

  •  0
  • tehfailsafe  · 技术社区  · 11 年前

    我已经关注了几个railscast,目前有一个使用will_page的无休止页面的产品列表。我想实现railscast#240,在结果中添加实时搜索,但似乎存在一些逻辑冲突,我不知道如何纠正。

    简单地说,index.js.erb中的无尽页面需要使用append在当前产品列表下添加更多产品:

    $('#products')。 追加 ('<%=j渲染(@产品)%>');

    然而,实时搜索实现需要用搜索结果中的新产品替换当前的产品列表:

    $('#products')。 html格式 ('<%=j渲染(@产品)%>');

    这是整个区块:

        $('#products').html('<%= j render(@products) %>');  // live search
        $('#products').append('<%= j render(@products) %>'); // endless page
        <% if @products.next_page %>
            $('.pagination').replaceWith('<%= j will_paginate(@products) %>');
        <% else %>
            $('.pagination').remove();
        <% end %>
    

    html()和append(。

    我如何设置它,以便如果用户在搜索框中输入,它会触发html(),如果用户在滚动,它会引发append()?有没有办法确定是哪个事件触发了index.js.erb调用?

    1 回复  |  直到 11 年前
        1
  •  0
  •   tehfailsafe    11 年前

    想好了,以防它出现在其他人身上。对于大多数有经验的铁路人来说,这可能是显而易见的,但作为一个新手,这对我来说是一个全新的概念。

    我将搜索结果重构到另一个控制器和视图中,这样我就可以使用一个单独的js.erb文件来替换#products的内容,而products控制器则处理滚动的无尽页面。

    所以现在我有了看法>产品>使用$('#products').append和views>的index.js.erb;结果>$('#products').html等的index.js.erb

    我还必须创建一个results_controller.rb索引操作以及路由文件的结果资源。

    之后两者同时工作。