2015-01-28 3 views
2

현재 각도 ui-grid 3.0.0을 테스트 중입니다. 이전 버전의 샘플 코드에 따라 selectedItems에는 선택할 때 일부 객체가 포함되어야합니다. 버전 3에서는 작동하지 않는 것 같습니다. 누구도 같은 행동을 경험 한 적이 있습니까?selectedItem in ui-grid 3.0.0

AngularJS와 버전 : 1.3.11 각도-UI 그리드 :

$scope.gridOptions = { }; 
$scope.mySelections = []; 

$scope.gridOptions = { 
    enableRowSelection: true, 
    enableRowHeaderSelection: false, 
    modifierKeysToMultiSelect: true, 
    multiSelect: true, 
    pagingPageSize: 25, 
    useExternalPagination: true, 
    useExternalSorting: true, 
    selectedItems: $scope.mySelections 
}; 

$scope.changeDelete = function() { 
    $log.debug('Selection length = ' + $scope.mySelections.length); 
    if ($scope.mySelections.length > 0) { 
     $location.path("/EREditHospitalChange/"); 
    } 
    $location.path("/EREditHospitalChange/LYNDA"); 

} 

// mySelections.length 항상 0 : 3.0.0-rc.16 여기 내 컨트롤러에서 일부를 추출 코드입니다.

그는 HTML 페이지 내 그리드 선언 :

<div ui-grid="gridOptions" ui-grid-selection ui-grid-pagination ui-grid-edit class="grid"></div> 

<pre>{{mySelections}}</pre> 
</fieldset> 
<button ng-click="changeDelete()">Change/Delete</button> 

[] This is what is visible in {{mySelections}} 

답변

8

을 얻기 위해 시도하는 경우. *를 $ scope.gridApi한다. http://ui-grid.info/docs/#/api/ui.grid.selection.api:PublicApi에서 문서와 튜토리얼 참조 : gridOptions에서 http://ui-grid.info/docs/#/tutorial/210_selection

를이 추가 :

여기
$scope.mySelections = []; 

$scope.gridOptions = { 
    enableRowSelection: true, 
    enableRowHeaderSelection: false, 
    modifierKeysToMultiSelect: true, 
    multiSelect: true, 
    pagingPageSize: 25, 
    useExternalPagination: true, 
    useExternalSorting: true, 
    // Addition: 
    onRegisterApi: function (gridApi) { 
     $scope.gridApi = gridApi; 
     gridApi.selection.on.rowSelectionChanged($scope,function(rows){ 
      $scope.mySelections = gridApi.selection.getSelectedRows(); 
     }); 
    } 
}; 

이 Plunker에 작업 예제 : http://plnkr.co/edit/u5pzISURTnvPBm9FyiLr?p=preview 또한

당신이 $scope.gridOptions = { }을 제거 할 수는 완벽하게 유효한 때문에 속성을 가지고 바로 그 것처럼 객체를 선언하십시오.

+0

감사합니다. OnRegisterApi 작업을 추가하십시오. –

+0

감사의 필요가 없습니다. 항상 환영합니다. 유사한 문제를 가진 다른 사람들도 수용된 해결책을 찾을 수 있도록 문제가 해결되면 대답을 수락하십시오. 참조 : http://stackoverflow.com/help/someone-answers – iH8

1

한번에 사용하기 :

$scope.gridOptions = your grid options 

$scope.gridOptions.onRegisterApi = function (gridApi) { 
    $scope.gridApi = gridApi; 
} 
$scope.delete = function() { 
    var rows = scope.gridApi.selection.getSelectedRows(); 
} 

또는 해당 방법은 당신이 당신은 gridApi.selection를 사용한다 ithe 확인란을 선택