2017-04-22 20 views
1

我正在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

請參閱the documentation瞭解ui-grid的動態數據。如果您仔細閱讀,則表示您必須手動觸發數據更改事件,以便網格知道有新數據可供顯示。閱讀this other tutorial將告訴你如何做到這一點。具體來說,您需要調用:

$scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN); 

其中

dataChange.* 

是UI格不變,說是什麼改變了。我目前無法發佈超過2個鏈接,但如果您搜索ui-grid API文檔以查找「uiGridConstants」,則可以找到它們。一定要在你的應用中包含所需的依賴關係,這很容易忘記。

相關問題