我正在处理Angularjs ui网格,我想每隔1分钟刷新一次网格中的数据。因此,我使用$interval来触发一个函数,该函数将获取数据,该函数的输出需要绑定到ui-grid。
如果不使用$interval,函数输出将成功绑定到网格(尽管不会每隔1分钟刷新一次!)。但是,使用$interval时,输出不会绑定到网格。
下面是我的代码,
var grdDataPromise;
function GetData() {
return InfoDataService.getDummyDetails($scope.getDtToday(), 'ABC', 'PQR');
}
$scope.startGetData = function () {
$scope.stopGetData();
grdDataPromise = $interval(GetData, REFRESH_RATE);
grdDataPromise.then(function (result) {
$scope.gridOptionsDashBoard.data = result;
});
}
$scope.startGetData();
$scope.stopGetData = function () {
$interval.cancel(grdDataPromise);
}
$scope.$on('$destroy', function () {
$scope.stopGetData();
});在这里,grdDataPromise.then()函数从不触发,我认为这就是问题所在,但我找不到解决此问题的方法。
有没有人能建议我如何在函数每隔1分钟执行一次后将数据绑定到网格?
提前谢谢。
发布于 2017-04-23 01:35:57
有关ui-grid的动态数据,请参阅the documentation。如果您仔细阅读,它显示您必须手动触发数据更改事件,以便网格知道有新数据需要显示。阅读this other tutorial将向您展示如何做到这一点。具体来说,您需要调用:
$scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN);哪里
dataChange.* 是一个ui-grid常量,表示发生了什么变化。目前我不能发布超过2个链接,但是如果你在ui-grid API文档中搜索"uiGridConstants",你会找到它们。请确保还将所需的依赖项包括到您的应用程序中,这很容易忘记。
https://stackoverflow.com/questions/43560021
复制相似问题