Rails 5.2 数据表不会在页面更改时刷新数据
Posted
技术标签:
【中文标题】Rails 5.2 数据表不会在页面更改时刷新数据【英文标题】:Rails 5.2 Datatables will not Refresh Data on Page Change 【发布时间】:2019-09-19 10:31:18 【问题描述】:我有一个配置了数据表的 rails 5.2 项目。该插件工作正常,但如果我更改页面然后点击后退按钮,表中的数据不会再次使用数据表加载。它说“表中没有数据”。对我来说,这听起来像是一个 turbolinks 问题。
我正在使用以下内容来生成表格:
$( document ).on('turbolinks:load', function()
$("#prjtbl").dataTable();
);
数据表插件在页面更改之间加载,但表中的数据不刷新。有关如何解决此问题的任何想法?
更新:Application.js
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any javascript/Coffee file within this directory, lib/assets/javascripts, or any plugin's
// vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file. JavaScript code in this file should be added after the last require_* statement.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require rails-ujs
//= require jquery
//= require datatables
//= require popper
//= require bootstrap-sprockets
//= require shards-dashboards
//= require trix
//= require activestorage
//= require turbolinks
//= require_tree .
Page.js
JQuery(function()
$( document ).on('turbolinks:load', function()
$("#prjtbl").dataTable();
);
);
【问题讨论】:
【参考方案1】:document.addEventListener("turbolinks:load", function()
"use strict";
if ($("#prjtbl").length == 0)
$("#prjtbl").dataTable();
)
【讨论】:
谢谢。当我尝试它停止加载数据表插件时。该代码应该放在哪里?我目前在我的 page.js 文件中有它。 向我们展示您的 page.js 文件和您的 application.js 文件 用额外的文件更新了主帖。 也许可以尝试将//= require turbolinks
重新排序到 application.js
中,方法是将其放在 //= require jquery
的正下方。加载顺序在 Rails 的 JS 中非常重要。
相同的结果。当我在 turbolinks:load 周围使用 JQuery(function() 时,插件不会加载。删除会导致数据表加载,但在刷新页面之前它不会刷新页面更改之间的数据。以上是关于Rails 5.2 数据表不会在页面更改时刷新数据的主要内容,如果未能解决你的问题,请参考以下文章
VueJS - V-for 在数据更新后不会重新渲染,需要刷新页面才能看到更改