【问题标题】:Rails remote conflicts with bootstrap remote modalRails 远程与引导远程模式冲突
【发布时间】:2013-05-03 16:10:23
【问题描述】:

我在使用 Twitter 引导程序和 Rails 数据远程链接时遇到问题。

我使用data-remote="/path/to/data" 加载模态内容。一切都按我的意愿工作,但创建两个请求。

= link_to '#myModal', 'Click here', data: {toggle: 'modal', remote: '/path'}

第一个是 rails data-reomte,他向我所在的页面发出请求,然后引导程序发出请求并显示模式。

有什么方法可以在指定的链接上远程打开 Rails 或者它实际上是另一个问题?

【问题讨论】:

  • 可能缺少某些上下文,但如果它正在加载您的模态内容,您为什么要关闭遥控器?来自引导程序的请求仅用于显示我相信的模式,而不是真的 http请求。
  • Bootstrap 正在通过 data-remote 加载内容,而 rails 正在加载一个 get 请求。我只想加载模态框。

标签: ruby-on-rails twitter-bootstrap modal-dialog


【解决方案1】:

根据 Modal 上的 Bootstrap 文档:http://twitter.github.io/bootstrap/javascript.html#modals

如果您使用数据 api,您也可以使用 href 标签来指定远程源。这方面的一个例子如下所示:

<a data-toggle="modal" href="remote.html" data-target="#modal">click me</a>

因此,您可以通过禁用 Rails UJS 数据 api 并使用 Bootstrap 来满足您的请求。像这样

<a data-toggle="modal" href="remote.html" data-target="#modal" 
data-remote="false">click me</a>

在你的情况下。服务器端代码

= link_to 'Click here', '/path_for_bootstrap',
    data: {toggle: 'modal', remote: false, target: "#myModal"}

更新或者更好,根本不需要定义remote,因为没有人需要它,无论是Bootstrap还是UJS!

= link_to 'Click here', '/path_for_bootstrap',
    data: {toggle: 'modal', target: "#myModal"}

【讨论】:

  • 啊,如果我删除了遥控器:false 它可以工作并且只创建一个请求。谢谢!!
  • @sandelius,啊哈,是的 :) 实际上,在这种情况下,您根本不需要定义 remote
  • Hm .. 我想创建“no-javascript client”兼容代码 .. Bootstrap 允许我们为没有 JS(或蜘蛛)的浏览器设置 href 并为支持 JS 的浏览器设置 data-remote .
  • 是否有解决方案或者我们应该编写不兼容的代码? :(
猜你喜欢
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多