Kod poniżej jest modyfikacją do wtyczki. Działa poprzez sprawdzenie liczby elementów w danych siatki i obliczenie wysokości na podstawie tego. Opcje przekazywane do wtyczki to wysokość wiersza i wysokość nagłówka.
ngGridCustomFlexibleHeightPlugin = function (opts) {
var self = this;
self.grid = null;
self.scope = null;
self.init = function (scope, grid, services) {
self.domUtilityService = services.DomUtilityService;
self.grid = grid;
self.scope = scope;
var recalcHeightForData = function() { setTimeout(innerRecalcForData, 1); };
var innerRecalcForData = function() {
var gridId = self.grid.gridId;
var footerPanelSel = '.' + gridId + ' .ngFooterPanel';
var extraHeight = self.grid.$topPanel.height() + $(footerPanelSel).height();
var naturalHeight = (grid.data.length - 1) * opts.rowHeight + opts.headerRowHeight;
self.grid.$viewport.css('height', (naturalHeight + 2) + 'px');
self.grid.$root.css('height', (naturalHeight + extraHeight + 2) + 'px');
// self.grid.refreshDomSizes();
if (!self.scope.$$phase) {
self.scope.$apply(function() {
self.domUtilityService.RebuildGrid(self.scope, self.grid);
});
}
else {
// $digest or $apply already in progress
self.domUtilityService.RebuildGrid(self.scope, self.grid);
}
};
scope.$watch(grid.config.data, recalcHeightForData);
};
};
I został uruchomiony w takich i innych problemów i rozpoczął próbę naprawić (patrz widelec na github oddziału improve_layout https://github.com/a5sk4s/ng-grid/tree/improve_layout) - to jest praca w toku i może wprowadzać nowe problemy - zobacz rozwidlenie twojego pluna tutaj: http://plnkr.co/edit/06CYAGjVURxGxDfX8wnt (niektóre problemy z układem, ponieważ zmieniłem ng-grid.css i nie mogę tego odnieść) - mam nadzieję, że pomoże – Andreas
Dzięki Andreas. Obawiałem się, że nie używam wtyczki poprawnie lub nawet ngGrid. Wygląda na to, że ma teraz tylko kilka problemów. W przypadku tego konkretnego problemu, czy wiesz, jakie produkty zmodyfikowałeś w swoim oddziale? Mogę wprowadzić zmiany lokalnie, gdzie nie sądzę, że korzystanie z tej gałęzi jest dla mnie opcją. –
Andreas, link do twojego plunkera jest zepsuty. – Rob