以编程方式 select 行 UI-Grid 没有监听器
Programatically select row in UI-Grid without listener
我想 select 默认情况下网格的所有行,我设法通过在 :
中指定的 onRegisterApi 中添加数据侦听器来实现
onRegisterApi : function(gridApi)
{
$scope.gridApi = gridApi;
$scope.gridApi.grid.registerDataChangeCallback(function(data)
{
$scope.gridApi.selection.selectRow($scope.gridOptions.data[0]);
}, [uiGridConstants.dataChange.ROW]);
}
工作 plunkr:http://plnkr.co/edit/dzf6PZwKdZmSNvKzQeYH?p=preview
但是,我不明白为什么没有监听器它就不能工作,比如
onRegisterApi : function(gridApi)
{
$scope.gridApi = gridApi;
_.each($scope.gridOptions.data, function(companies, index){
$scope.gridApi.selection.selectRow($scope.gridOptions.data[index]);
});
}
非工作 plunkr:http://plnkr.co/edit/XOliwXn2MLyH6nqO7pp4?p=preview
谁能告诉我为什么?
它确实有效,您只需要等待加载网格,例如,有一个小的超时。通过这种方式,浏览器会呈现您的 DOM 并在之后执行 JS,即使超时时间非常短。 See this answer about timeout.
setTimeout(function(){
_.each($scope.gridOptions.data, function(companies, index){
$scope.gridApi.selection.selectRow($scope.gridOptions.data[index]);
});
}, 1);
我在 angular 1.5.0 版本中使用了以下代码。它对我有用。
app.controller('MainCtrl', ['$scope', '$http', '$interval', 'uiGridConstants','$location', function ($scope, $http, $interval, uiGridConstants, $location) { ...............
// $interval 当我们等待网格消化我们刚给它的数据时
$interval( function() {$scope.gridApi.selection.selectRow($scope.gridOptions.data[0]);}, 0, 1);
我想 select 默认情况下网格的所有行,我设法通过在
onRegisterApi : function(gridApi)
{
$scope.gridApi = gridApi;
$scope.gridApi.grid.registerDataChangeCallback(function(data)
{
$scope.gridApi.selection.selectRow($scope.gridOptions.data[0]);
}, [uiGridConstants.dataChange.ROW]);
}
工作 plunkr:http://plnkr.co/edit/dzf6PZwKdZmSNvKzQeYH?p=preview
但是,我不明白为什么没有监听器它就不能工作,比如
onRegisterApi : function(gridApi)
{
$scope.gridApi = gridApi;
_.each($scope.gridOptions.data, function(companies, index){
$scope.gridApi.selection.selectRow($scope.gridOptions.data[index]);
});
}
非工作 plunkr:http://plnkr.co/edit/XOliwXn2MLyH6nqO7pp4?p=preview
谁能告诉我为什么?
它确实有效,您只需要等待加载网格,例如,有一个小的超时。通过这种方式,浏览器会呈现您的 DOM 并在之后执行 JS,即使超时时间非常短。 See this answer about timeout.
setTimeout(function(){
_.each($scope.gridOptions.data, function(companies, index){
$scope.gridApi.selection.selectRow($scope.gridOptions.data[index]);
});
}, 1);
我在 angular 1.5.0 版本中使用了以下代码。它对我有用。
app.controller('MainCtrl', ['$scope', '$http', '$interval', 'uiGridConstants','$location', function ($scope, $http, $interval, uiGridConstants, $location) { ...............
// $interval 当我们等待网格消化我们刚给它的数据时
$interval( function() {$scope.gridApi.selection.selectRow($scope.gridOptions.data[0]);}, 0, 1);