Javascript 选择过滤器ui网格后的第一个可见行
我无法强制选择应用过滤器后的第一行。因此,当我加载页面以选择我使用的第一行时:Javascript 选择过滤器ui网格后的第一个可见行,javascript,angularjs,angular-ui-grid,Javascript,Angularjs,Angular Ui Grid,我无法强制选择应用过滤器后的第一行。因此,当我加载页面以选择我使用的第一行时: gridApi.selection.selectRow($scope.gridOptions.data[0]); 这是API文档中的内容,很清楚。 现在,我尝试选择过滤器后的第一行。 我有一个来自官方文档的singleFilter函数 $scope.singleFilter = function( renderableRows ){ var matcher = new RegEx
gridApi.selection.selectRow($scope.gridOptions.data[0]);
这是API文档中的内容,很清楚。
现在,我尝试选择过滤器后的第一行。
我有一个来自官方文档的singleFilter函数
$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;
};
通过简单的脚本,我得到第一行
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))
但不幸的是没有成功。我的错在哪里?谢谢你的帮助。
我在下面创建了一个可用的Plunk 这不起作用的原因是,您得到的可见行是所有的行,而不仅仅是过滤的行。返回所有行的原因是,您在返回筛选器之前正在调用这些行。我已经使用我们目前所了解的内容创建了逻辑,这是函数完成后将返回的内容
var-filtered=[];
对于(var i=0;i
哇!,作品就像魔术,谢谢你的描述,我很感激!
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));
var filtered = [];
for (var i = 0; i < renderableRows.length; i++) {
if (renderableRows[i].visible) {
filtered.push(renderableRows[i].entity)
}
}
if (filtered.length) {
$scope.gridApi.selection.selectRow(filtered[0]);
}