【发布时间】:2014-02-18 02:02:29
【问题描述】:
所以我有一个使用基础的新 Rails 4 应用程序,我今天开始集成 DataTables,并在使用 ajax 调用将其设置为页面后遇到了一个小挫折。
当我从一个页面(在本例中为主页)单击一个链接,该链接将我发送到包含数据表的页面时,表格呈现时没有任何条目或搜索框或分页等。但是,如果我刷新浏览器,页面将完全刷新,并进行 ajax 调用,表格将正确填充。
查看网络流量后,我看到单击链接后响应为 304:未修改。由于没有其他对 JS 和 CSS 等的请求,我假设 JS 没有重新加载并进行正确的 ('#tasks').dataTable({...}) 调用。
另外,需要注意的一点是该表位于部分“tasks_index.html.haml”中。
但我确实记得的一件事是我仍在使用 Turbolinks gem。我尝试禁用它,看看是否能解决我的问题,令人惊讶的是,它确实解决了。
那么什么会导致 Turbolinks 阻止正常的 javascript 在页面上加载呢?有没有办法强制 turbolinks 总是加载某些页面?我什至不使用 Turbolinks 会更好吗?
【问题讨论】:
-
万一其他人有这个问题,我似乎找到了一种方法,至少可以通过在单个链接上应用 html 标签“data-no-turbolink”来防止 turbolinks包含链接的 div。每当页面上有数据表时,以某种方式禁用涡轮链接会很好,但现在看起来有点复杂,因为我的应用程序仍然很小。
-
我能够成功修复 turbolinks 问题,而无需求助于 data-no-turbolink。请参阅下面的解决方案。
标签: ruby-on-rails ajax datatables turbolinks