首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ui-grid:将$interval触发的函数的输出绑定到ui-grid

ui-grid:将$interval触发的函数的输出绑定到ui-grid
EN

Stack Overflow用户
提问于 2017-04-22 21:48:48
回答 1查看 181关注 0票数 1

我正在处理Angularjs ui网格,我想每隔1分钟刷新一次网格中的数据。因此,我使用$interval来触发一个函数,该函数将获取数据,该函数的输出需要绑定到ui-grid。

如果不使用$interval,函数输出将成功绑定到网格(尽管不会每隔1分钟刷新一次!)。但是,使用$interval时,输出不会绑定到网格。

下面是我的代码,

代码语言:javascript
复制
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分钟执行一次后将数据绑定到网格?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-04-23 01:35:57

有关ui-grid的动态数据,请参阅the documentation。如果您仔细阅读,它显示您必须手动触发数据更改事件,以便网格知道有新数据需要显示。阅读this other tutorial将向您展示如何做到这一点。具体来说,您需要调用:

代码语言:javascript
复制
$scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN);

哪里

代码语言:javascript
复制
dataChange.* 

是一个ui-grid常量,表示发生了什么变化。目前我不能发布超过2个链接,但是如果你在ui-grid API文档中搜索"uiGridConstants",你会找到它们。请确保还将所需的依赖项包括到您的应用程序中,这很容易忘记。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43560021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档