Rails:使用 ajax 填充引导下拉列表

Posted

技术标签:

【中文标题】Rails:使用 ajax 填充引导下拉列表【英文标题】:Rails: Populating bootstrap dropdown with ajax 【发布时间】:2012-10-04 19:34:19 【问题描述】:

我目前有一个显示通知的下拉菜单

<li class="notifications dropdown"> 
  <a class="dropdown-toggle" id="dLabel" role="button" data-remote="true" data-toggle="dropdown" data-target="#" href="/notifications"><i class="icon-user"></i> Notifications</a>
  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
  </ul>
</li>

ul 下拉菜单是空的,但是在单击链接时,我想用 rails 中的数据填充菜单。

我目前在 notifications.js.erb 中有这个

$(".nav li.notifications .dropdown-menu").remove();
$(".nav li.notifications").append("<%= escape_javascript(render('users/notifications', notifications: @notifications)) %>");

通常我会将下拉链接设置为远程,但由于我使用的是引导程序的下拉列表,因此不会向 Notifications.js.erb 发送请求。如何手动调用那里的代码?

【问题讨论】:

【参考方案1】:

我会添加 JavaScript 代码来进行调用:

$(document).ready(function() 
    $('#dLabel').click(function() 
        // Only call notifications when opening the dropdown
        if(!$(this).hasClass('open')) 
           $.ajax(
              type: "GET",
              url: "/notifications",
              async: false,
              dataType: "script"
           );
        
    );
);

你也可以让它异步,并在菜单中临时放置一个加载图标...

【讨论】:

以上是关于Rails:使用 ajax 填充引导下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

填充下拉列表 - PHP Ajax MySQL

Rails Dynamic / Cascading选择下拉列表

使用 jQuery AJAX 将数据库默认值添加到下拉列表

引导选择中的选项值显示在下拉列表之外

在引导下拉列表中使用 django 进行 Ajax 调用

下拉菜单在第一页加载时出现延迟