智能table-angularJs-ajax刷新table
Smart table - angularJs - ajax refresh table
我正在使用 angularjs 智能模块 table。
我的 table 有服务器端处理,所有数据加载都在服务器上。我想在 table.
之外有一个刷新按钮
这是调用服务器的函数,我希望能够手动调用它,但我不知道如何在我的控制器中检索 table 状态。
this.callServer = function callServer(tableState) {
ctrl.isLoading = true;
var pagination = tableState.pagination;
var start = pagination.start || 0; // This is NOT the page number, but the index of item in the list that you want to use to display the table.
var number = pagination.number || 10; // Number of entries showed per page.
service.getPage(start, number, tableState, ctrl.startDateFilter,
ctrl.endDateFilter).then(function (result) {
ctrl.displayed = result.data;
tableState.pagination.numberOfPages = result.numberOfPages;
ctrl.isLoading = false;
});
};
我的目标是拥有这样的功能,如何获得 table 状态?
this.refreshTable = function(){
tableState = getTableState();
ctrl.callServer(tableState);
}
解决方案是将 table 状态放在控制器变量中。
每次调用callServer函数时,都会更新这个变量。这样,我就可以刷新 table.
this.tableState = null;
this.callServer = function callServer(tableState) {
ctrl.tableState = tableState;
...
}
this.refreshGrid = function(){
ctrl.callServer(ctrl.tableState);
}
您也可以创建一个指令来执行此操作。
查看
<table st-pipe="productsTableCtrl.getTableData"
st-table="productsTableCtrl.tableData" refresh-table>
在你的控制器里面
$scope.$broadcast('refreshMyTable');
指令
app.directive("refreshTable", function(){
return {
require:'stTable',
restrict: "A",
link:function(scope,elem,attr,table){
scope.$on("refreshMyTable", function() {
table.pipe(table.tableState());
});
}
}});
感谢 gtaylor44:https://github.com/lorenzofox3/Smart-Table/issues/363#issuecomment-246636293
我正在使用 angularjs 智能模块 table。
我的 table 有服务器端处理,所有数据加载都在服务器上。我想在 table.
之外有一个刷新按钮这是调用服务器的函数,我希望能够手动调用它,但我不知道如何在我的控制器中检索 table 状态。
this.callServer = function callServer(tableState) {
ctrl.isLoading = true;
var pagination = tableState.pagination;
var start = pagination.start || 0; // This is NOT the page number, but the index of item in the list that you want to use to display the table.
var number = pagination.number || 10; // Number of entries showed per page.
service.getPage(start, number, tableState, ctrl.startDateFilter,
ctrl.endDateFilter).then(function (result) {
ctrl.displayed = result.data;
tableState.pagination.numberOfPages = result.numberOfPages;
ctrl.isLoading = false;
});
};
我的目标是拥有这样的功能,如何获得 table 状态?
this.refreshTable = function(){
tableState = getTableState();
ctrl.callServer(tableState);
}
解决方案是将 table 状态放在控制器变量中。
每次调用callServer函数时,都会更新这个变量。这样,我就可以刷新 table.
this.tableState = null;
this.callServer = function callServer(tableState) {
ctrl.tableState = tableState;
...
}
this.refreshGrid = function(){
ctrl.callServer(ctrl.tableState);
}
您也可以创建一个指令来执行此操作。
查看
<table st-pipe="productsTableCtrl.getTableData"
st-table="productsTableCtrl.tableData" refresh-table>
在你的控制器里面
$scope.$broadcast('refreshMyTable');
指令
app.directive("refreshTable", function(){
return {
require:'stTable',
restrict: "A",
link:function(scope,elem,attr,table){
scope.$on("refreshMyTable", function() {
table.pipe(table.tableState());
});
}
}});
感谢 gtaylor44:https://github.com/lorenzofox3/Smart-Table/issues/363#issuecomment-246636293