UI-Grid enablefiltering не показывает поле ввода на странице AngularJS

Я использую нестабильную версию UI-Grid 3.0 на угловой странице, которая загружает данные через Restangular. Пока большая часть вроде в порядке. Я использую модуль выбора вместе с ним, и у меня возникают трудности со страницами, загружающими {enableFiltering: true} gridOptions, поскольку на большинстве страниц поле ввода в сетке не отображается.

Я вызываю сетку пользовательского интерфейса на странице html, используя:

<div class="gridStyle" ui-grid="gridOptions" ui-grid-selection></div>

и мои gridOptions в моем контроллере выглядят так.

 $scope.gridOptions = {
    enableFiltering: true,
    data: 'data',
    columnDefs: [
        {field: 'name', displayName: 'Name'},
        {field: 'date', displayName: 'Date', cellFilter: 'date:\'MM-dd-yyyy\''}
    ],
    onRegisterApi: function (gridApi) {
        $scope.gridApi = gridApi;
    }
};

Честно говоря, я не могу понять, почему его нет на странице.


person Wes    schedule 23.12.2014    source источник
comment
У меня такая же проблема. Я попытался воспроизвести проблему с примером plunker ui-grid, но не могу. На самом деле, в мое приложение было добавлено много других вещей, поэтому не так просто понять, в чем причина.   -  person sunghun    schedule 06.02.2015


Ответы (2)


Я не понимаю на 100% проблему, но я мог бы обойти ее, переопределив некоторые css. Высота в css была 100%, и я изменил их на авто.

.ui-grid-header-cell{
    height:auto;
}

.ui-grid-cell-contents {
    height: auto;
}

Надеюсь, это будет полезно.

person sunghun    schedule 06.02.2015

Это ужасный хак, но я всегда использую фильтры, поэтому я просто отследил контейнер, который был неправильной высоты. Я потерял часы, пытаясь найти причину и используя все предложенные исправления. Оказалось, что у контейнера есть класс «ui-grid-header-canvas», поэтому я просто установил высоту 54 пикселя после того, как размер сетки изменился (после того, как я установил данные)

 $(".ui-grid-header-canvas").css("height","54px")

Извините, но это работает, и у меня есть крайний срок..

person davaus    schedule 24.05.2017