每分钟后重新加载 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);
};
刷新数据的最佳方法-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
我在我的 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);
};
刷新数据的最佳方法-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