Изменить видимость столбцов ui-grid angular
Я хочу показать/скрыть столбцы после рендеринга сетки. До того, как я перешел на новую ui-сетку
Я позвонил в toggleVisible()
, но теперь он не работает.
Я попытался изменить видимость столбца (или любое другое свойство), например, ниже.
columnDefs[9].visible = false;
Когда я устанавливаю видимость в определении столбца (перед рендерингом), он работает, но после wards я не могу его изменить.
Ответы
Ответ 1
Старый вопрос, но это работает для меня в 3.0.0-rc.20. Я предполагаю, что columnDefs должен быть в области.
$scope.columnDefs = [
{ name: 'one' },
{ name: 'two', visible: false }
];
$scope.grid = {
data: 'data',
columnDefs: $scope.columnDefs
};
$scope.grid.onRegisterApi = function(gridApi){
$scope.gridApi = gridApi;
};
$scope.showColumnTwo = function() {
$scope.columnDefs[1].visible = true;
$scope.gridApi.grid.refresh();
};
Ответ 2
Просто начал работать с angular-ui-grid
, поэтому это может быть не лучшее решение.
Попробуйте включить api-объект uiGrid и затем вызывать метод refersh
для объекта grid
...
$scope.gridOptions.onRegisterApi = function(gridApi){
$scope.gridApi = gridApi;
};
....
columnDefs[9].visible = false;
$scope.gridApi.grid.refresh();
Ответ 3
В случае, если кто-то искал решение, которое не требовало создания columndDef.
s.gridOptions = {
data: 'myData',
onRegisterApi: function(gridApi) {
gridApi.core.registerColumnsProcessor(hideIdColumn);
s.gridApi = gridApi;
function hideIdColumn(columns){
columns.forEach(function(column){
if(column.field==='_id'){
column.visible=false;
}
});
return columns;
}
}
Просто замените column.field === '_ id' частью вашего собственного условия.
Также не забывайте возвращать столбцы, иначе вы не получите никаких столбцов.