2016-07-19 3 views
0

나는 선택된 행 번호의 값을 얻고, Angularjs를 사용하여 HTML로 인쇄하려고 시도하지만 아무런 문제가 없다. 나는 i가 그리드 열 머리글에 clic. "selectedRowsCounter"의 값은 내가ag-grid를 사용하여 HTML에서 직접 선택된 행의 값을 얻는 방법

내 코드 스크린 샷

enter image description here

var activeButtons = function() { 
     var countRowsSelected = $scope.gridOptions.api.getSelectedRows().length; 
    $scope.selectedRowsCounter = countRowsSelected; 
    console.log($scope.selectedRowsCounter); 
    $rootScope.count.selectedRows = countRowsSelected; 
}; 

$scope.gridOptions = { 
    rowData: null, 
    angularCompileRows: true, 
    onSelectionChanged: activeButtons, 
} 

처럼 그리드 헤더에 카릭 dosn't 경우, HTML에서 0 나는 여기에 같은 주제를 열었습니다. https://github.com/ceolter/ag-grid/issues/1023

답변

0

나는이 줄을 activ에 추가했습니다. eButtons 기능과는 좋은 해결책이 있다면 내가 알고 해달라고

$scope.gridOptions.api.refreshView(); 

잘 작동하지만 지금

0

문제에 대한 그 작품은 각도가 뭉치는 때문에 $ 범위 속성 변화의 인식 인 상태 것으로 보인다 grid는 $ scope에서 무언가를 수정했다고 Angular에게 말하지 않습니다. 비록 당신이 당신의 견해를 나타내지 않는다면 말하기는 어렵습니다.

얼마나 많은 행이 선택되었는지 알기 위해 onSelectionChanged을 사용하는 방법을 사용할 수 있지만이를 적용하여 $ scope에서 변경된 사항을 Angular에 알려줘야합니다. 이 같은

뭔가 : 당신은 $ 범위 및 변경 사항을 반영 할 HTML보기를 적용 할 수 있습니다

var activeButtons = function() { 
    var countRowsSelected = $scope.gridOptions.api.getSelectedRows().length; 
    $scope.selectedRowsCounter = countRowsSelected; 
    console.log($scope.selectedRowsCounter); 
    $rootScope.count.selectedRows = countRowsSelected; 
    window.setTimeout(function() { 
     this.$scope.$apply(); 
    }); 
}; 

그런 식으로.

+0

답변 해 주셔서 감사합니다. - evry 변경 시간 초과로 인해 코드가 매우 느려졌습니다 !! –

+0

을 0으로 설정할 수 있습니다. 즉시 실행되지는 않지만 다음 틱에서 실행됩니다. 눈에 띄는 방식으로 물건을 느리게해서는 안됩니다. 'setTimeout (function() {$ scope. $ apply();}); – iberodev

+0

당신의 메소드와 ag-grid의 refreshVew 메소드 사이에 가장 좋은 점은 무엇입니까? –

관련 문제