항상 선택의 첫 번째 행의 UI 그리드를 설정하는 방법 내부 onRegisterApi
또는 내부 필터 기능
$scope.filter = function() {
$scope.gridApi.grid.refresh();
$scope.gridApi.selection.selectRow($scope.gridOptions.data[0]);
}
$scope.singleFilter = function(renderableRows){
var matcher = new RegExp($scope.filterValue);
renderableRows.forEach(function(row) {
var match = false;
[
// 'id',
// 'study.name',
'title',
'occuredDate',
// 'eventType.name',
'description',
'createdDate' ,
// 'priority.name',
'severity.name',
'status.name',
'createdDate'
].forEach(function(field){
if (field.indexOf('.') !== '-1') {
field = field.split('.');
}
if (row.entity.hasOwnProperty(field) && row.entity[field].match(matcher) || field.length === 2 && row.entity[field[0]][field[1]].match(matcher)){
match = true;
}
});
if (!match){
row.visible = false;
}
});
return renderableRows;
};
아무 도움이되지 않습니다. 열 필터 또는 단일 필터를 사용하여 데이터를 필터링하는 경우에도 첫 번째 행을 항상 선택해야합니다. 그것은 ui-grid에서 가능합니까? 당신의 gridApi.selection.on.rowSelectionChanged
α- 함수에 다음 줄을 추가
plunker이 시도를 작동하지 : 첫 번째 레코드가 항상 볼 수 바로 반환하기 전에 필터 기능에 선
renderableRows[0].visible = true;
을 추가해야(행) .entity. field.length === 2 && row.entity [field [0]] [field [1]] 디버그 할 때 if (row.entity.hasOwnProperty (field) && row.entity [필드] .match (matcher) ] .match (matcher)) { 매트 ch = true; } 사실입니까? – Vitalii
@Vitalii 다시 확인하십시오 plunker 나를 위해 잘 작동 – Anton