我正在研究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分钟间隔执行一次函数后如何将数据绑定到网格?
提前致谢。
答案 0 :(得分:0)
有关ui-grid的动态数据,请参阅the documentation。如果您仔细阅读,它说您必须手动触发数据更改事件,以便网格知道有新数据可供显示。阅读this other tutorial将告诉你如何做到这一点。具体来说,您需要致电:
$scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN);
其中
dataChange.*
是一个ui-grid常量,表示改变了什么。我目前无法发布超过2个链接,但如果您在ui-grid API文档中搜索“uiGridConstants”,您将找到它们。请务必在应用中包含所需的依赖项,这很容易让人忘记。