2017-04-22 7 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

ui-grid 용 동적 데이터는 the documentation을 참조하십시오. 면밀히 읽으면 데이터 변경 이벤트를 수동으로 실행하여 그리드가 표시 할 새로운 데이터를 알 수 있도록해야한다고합니다. 읽는 것 this other tutorial는 그것을하는 방법을 보여줄 것입니다. 특히, 호출 할 필요가 :

dataChange.* 

이 변경된 것을 말한다 UI 격자 상수

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

. 현재 2 개 이상의 링크를 게시 할 수 없지만 "uiGridConstants"에 대한 ui-grid API 설명서를 검색하면 찾을 수 있습니다. 잊어 버릴 수있는 필수 의존성을 앱에 포함해야합니다.