Ich kann nicht erzwingen, die erste Zeile nach dem angewendeten Filter auszuwählen. Also, wenn ich meine Seite bin Laden erste Zeile auszuwählen ich benutze:erste sichtbare Zeile nach Filter auswählen ui-grid
gridApi.selection.selectRow($scope.gridOptions.data[0]);
dies von API-Dokumentation und es ist klar. Jetzt versuche ich, die erste Zeile nach dem Filter auszuwählen. Ich habe Einfilter Funktion, die von der offiziellen Dokumentation kommt
$scope.singleFilter = function(renderableRows){
var matcher = new RegExp($scope.filterValue);
renderableRows.forEach(function(row) {
var match = false;
[
'name', 'company', 'email'
].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;
}
});
var rows = $scope.gridApi.core.getVisibleRows();
var first = function(array, n) {
if (array == null){
return void 0;
}
if (n == null) {
return array[0];
}
if (n < 0) {
return [];
}
return array.slice(0, n);
};
console.log(first(rows))
$scope.gridApi.selection.selectRow(first(rows));
return renderableRows;
};
wo ich die Länge der sichtbaren Zeilen
var rows = $scope.gridApi.core.getVisibleRows();
durch einfaches Skript erhalten bekomme ich erste Reihe
var first = function(array, n) {
if (array == null){
return void 0;
}
if (n == null) {
return array[0];
}
if (n < 0) {
return [];
}
return array.slice(0, n);
};
console.log(first(rows))
dann bin ich versuchen, die Auswahl anzuwenden
$scope.gridApi.selection.selectRow(first(rows));
Aber leider kein Erfolg. Wo ist mein Fehler? Ich schätze jede Hilfe. My plunker
whoa !, wie Magie funktioniert, vielen Dank für Ihre Beschreibung, ich schätze es! – Anton