gpt4 book ai didi

ruby-on-rails - 带有 Ajax 的 Rails 数据表不能与 Turbolink 一起使用

转载 作者:行者123 更新时间:2023-12-04 03:34:09 25 4
gpt4 key购买 nike

所以我有一个新的 Rails 4 应用程序使用基础,我今天开始集成 DataTables 并在使用 ajax 调用将其设置为页面后遇到了一个小挫折。

当我从一个页面(在本例中为主页)单击一个链接,该链接将我发送到包含数据表的页面时,表格呈现时没有任何条目、搜索框或分页等。但是,如果我刷新浏览器,页面将完全刷新并进行 ajax 调用并正确填充表格。

查看网络流量后,我发现单击链接后响应为 304:未修改。由于没有对 JS 和 CSS 等的其他请求,我假设 JS 不会重新加载并进行正确的 ('#tasks').dataTable({...}) 调用。

此外,需要注意的一件事是该表驻留在部分“tasks_index.html.haml”中。

但我记得的一件事是我仍在使用 Turbolinks gem。我尝试禁用它,看看是否能解决我的问题,令人惊讶的是,它确实解决了。

那么什么会导致 Turbolinks 阻止正常的 javascript 在页面上加载呢?有没有办法强制 turbolinks 总是加载某些页面?我什至不使用 Turbolinks 会更好吗?

最佳答案

我猜您正在使用 $(document).ready 事件来初始化数据表。当您单击链接时使用 turbolinks 时,不会触发此事件,因为 turbolinks 会加载页面本身。因此,您应该改用 document page:change 事件。看这里:http://guides.rubyonrails.org/working_with_javascript_in_rails.html#page-change-events

关于ruby-on-rails - 带有 Ajax 的 Rails 数据表不能与 Turbolink 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21842971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com