每分钟后重新加载 bootstrap 数据表?

Reload the bootstrap datatable after every minute?

我在我的 angularjs 应用程序中使用 bootstrap 服务器端数据表,现在我想每分钟重新加载该数据表的数据。 那我该怎么做呢? 我正在使用以下代码:

HTML:

<table bs-table-control="matterTableControl"  id="matterTableControl"></table>

控制器:

$scope.getMatterTable = (function () {
    $scope.matterTableControl = {
        options : {
            toolbar : "#get",
            url : url,
            dataField : 'rows',
            cache : false,
            sidePagination : 'server',
            pagination : false,
            showExport : false,
            queryParams : queryParams,
            clickToSelect : true,
            onClickRow : onClickRow,
            maintainSelected : true,
            columns : [{
                    field : 'ClientName',
                    title : 'Client',
                    align : 'left',
                    valign : 'bottom',
                    sortable : false
                }, {
                    field : 'Name',
                    title : 'Matter',
                    align : 'left',
                    valign : 'bottom',
                    sortable : false
                }
            ]
        }
    }
});

我正在尝试使用以下代码重新加载它,但没有成功:

$interval(function () {
   $scope.getMatterTable();
}.bind(this), 60000);

数据表的文档: http://bootstrap-table.wenzhixin.net.cn/documentation/

示例: http://issues.wenzhixin.net.cn/bootstrap-table/#integrate/angular

Github数据表代码: https://github.com/wenzhixin/bootstrap-table-examples/tree/master/integrate/angular

Bootstrap 数据table 有一个正确的方法来刷新 table:

angular.element( document.querySelector( '#matterTableControl' ) ).bootstrapTable('refresh');

它基本上是这样做的:

BootstrapTable.prototype.refresh = function (params) {
    if (params && params.url) {
        this.options.url = params.url;
        this.options.pageNumber = 1;
    }
    this.initServer(params && params.silent, params && params.query);
};

Example

刷新数据的最佳方法-url of bootstrap table 是使用刷新方法和

$table.bootstrapTable('refreshOptions', {url: 'new url'});
$table.bootstrapTable('refresh', {url: 'new url'});

如果您不使用 refreshOptions,那么 BootstrapTable 仍会使用 Old url 进行下一次刷新。例如,当服务器端启用时 pagination/sorting/search。

此外,如果您在没有 JS 的情况下创建了 table,那么您可以用这种方式更新 URL

$('#tableId').bootstrapTable('refreshOptions', {url: 'new url'});
$('#tableId').bootstrapTable('refresh', {url: 'new url'});

如果需要添加loader图标,则在调用refresh方法之前添加,并通过onLoadSuccess、onLoadError事件删除loader图标。

文档:http://bootstrap-table.wenzhixin.net.cn/documentation/#methods