加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails:使用按钮通过Ajax渲染部分

发布时间:2020-12-17 02:35:26 所属栏目:百科 来源:网络整理
导读:我目前有一个显示微博列表的页面,该页面还包括几个选项卡,例如最近最常讨论的最常见.我想知道如何在不刷新整个页面和通过ajax的情况下呈现微博的不同类型的列表顺序的最佳方法.我不确定该如何去做,但我愿意学习是否有人借给我帮助.谢谢 :).到目前为止,我有
我目前有一个显示微博列表的页面,该页面还包括几个选项卡,例如最近最常讨论的最常见.我想知道如何在不刷新整个页面和通过ajax的情况下呈现微博的不同类型的列表顺序的最佳方法.我不确定该如何去做,但我愿意学习是否有人借给我帮助.谢谢 :).到目前为止,我有这么多.

页面HTML

<div id='ContentHeader'>
<%= render 'microposts/new' %>
<div class='StreamTabContainer'>
<ul class='StreamTabs'>
<li class='StreamTab StreamTabRecent active'>
<%= link_to 'Most Recent',some_path,:remote => true,:class => 'TabText' %>
</li>
<li class='StreamTab StreamTabDiscussed'>
<%= link_to 'Most Discussed',:class => 'TabText' %>
</li>
<li class='StreamTab StreamTabViews '>
<%= link_to 'Most Views',:class => 'TabText' %>
</li>
<li class='StreamTab StreamTabRated'>
<%= link_to 'Highest Rated',:class => 'TabText' %>
</li>
</ul>
</div>
</div>


<div id='ContentBody'>
<div id='ajax'></div>
<%= render 'users/microposts',:microposts => @microposts %>
</div>

解决方法

看起来你走在正确的道路上.您的视图在快速浏览时似乎是正确的.

只需要完成这项工作的最后几个部分,首先要确保您的控制器可以接受js调用:

# Inside Controller's action
 respond_to do |format|
     format.js
 end

设置完成后,您需要创建javascript以便为每次调用返回客户端.在视图文件夹中创建文件

# app/views/controllerName/actionName.js.erb
 $('#ajax').html("<%= escape_javascript(render(:partial => 'content',:sortingType => 'type')) %>");

上面将允许您呈现显示帖子的部分(在此示例中我将其命名为内容),并将sortedType的局部变量传递给partial.该响应将放在div id =“ajax”的html中(来自您的示例).最后一步是创建视图partial,它将按照您希望的方式对所有帖子进行排序

# app/views/resourceName/_content.html.erb
# Simply create your view partial here,which uses the :sortingType to display your posts in the order you need

希望这会让你更接近你的意图.

编辑:已实现我的引号存在问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读