Angular ng-grid を使用して動的コンテンツを表示しようとしています。グリッドには 0 ~ 25 行があります。最小サイズを設定し、アイテムが配列に追加されると、ng-grid が高さを自動調整するようにしたいと考えています。何らかの理由で、6〜7個のアイテムを追加すると自動サイズが停止します(解像度にも依存しているようです)。
誰でも助けることができますか?私は何が欠けていますか?問題を示す以下のプランカーがあります。
Angular ng-grid を使用して動的コンテンツを表示しようとしています。グリッドには 0 ~ 25 行があります。最小サイズを設定し、アイテムが配列に追加されると、ng-grid が高さを自動調整するようにしたいと考えています。何らかの理由で、6〜7個のアイテムを追加すると自動サイズが停止します(解像度にも依存しているようです)。
誰でも助けることができますか?私は何が欠けていますか?問題を示す以下のプランカーがあります。
以下のコードは、プラグインの変更です。グリッドデータの項目数を確認し、それに基づいて高さを計算することで機能します。プラグインに渡されるオプションは、行の高さとヘッダーの高さです。
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);
};
};
スタイルシートでこのコードを使用すると、問題が解決したことがわかりました。プラグインを無効にしましたが、どちらの方法でも機能します。
.ngViewport.ng-scope{
height: auto !important;
overflow-y: hidden;
}
.ngTopPanel.ng-scope, .ngHeaderContainer{
width: auto !important;
}
.ngGrid{
background-color: transparent!important;
}
それが誰かに役立つことを願っています