javascript - ui-grid 的高度问题

标签 javascript css angularjs angular-ui-grid

我想在 angularJS ui-grid 上使用 height: auto。我遇到了内联样式的问题,该样式在我添加 ui-grid 属性的 div 上设置了特定高度。还有一个名为 getViewPortStyle() 的函数,它动态地向 .ui-grid-viewport 类添加高度和宽度。

关于应用于具有 ui-grid 属性的元素的内联样式,我尝试用 height: auto !important; 覆盖元素上的类.这与 getViewPortStyle() 异常(exception)情况完美,当窗口宽度或高度通过用户使用鼠标移动来操纵浏览器而增加或减少时触发。

我的想法是覆盖 ui-grid,这样 getViewPortStyle() 函数就不会触发。我喜欢通过 ui-grid api 禁用它的方法,但我无法在文档中找到任何可以解释如何执行此操作的内容。

抱歉,如果我在这个问题上到处都是。我会尝试深入研究...

“如何禁止 getViewPortStyle() 函数触发或覆盖基于浏览器窗口控制网格高度和宽度的 CSS?”

ui-grid getViewPortStyle 函数

         GridRenderContainer.prototype.getViewPortStyle = function () {
            var self = this;
            var styles = {};
            
            if (self.name === 'body') {
                styles['overflow-x'] = self.grid.options.enableHorizontalScrollbar === uiGridConstants.scrollbars.NEVER ? 'hidden' : 'scroll';
            if (!self.grid.isRTL()) {
            if (self.grid.hasRightContainerColumns()) {
                styles['overflow-y'] = 'hidden';
            }
            else {
                styles['overflow-y'] = self.grid.options.enableVerticalScrollbar === uiGridConstants.scrollbars.NEVER ? 'hidden' : 'scroll';
            }
            }
            else {
            if (self.grid.hasLeftContainerColumns()) {
                styles['overflow-y'] = 'hidden';
            }
            else {
                styles['overflow-y'] = self.grid.options.enableVerticalScrollbar === uiGridConstants.scrollbars.NEVER ? 'hidden' : 'scroll';
            }
            }
            }
            else if (self.name === 'left') {
                styles['overflow-x'] = 'hidden';
                styles['overflow-y'] = self.grid.isRTL() ? (self.grid.options.enableVerticalScrollbar === uiGridConstants.scrollbars.NEVER ? 'hidden' : 'scroll') : 'hidden';
            }
            else {
                styles['overflow-x'] = 'hidden';
                styles['overflow-y'] = !self.grid.isRTL() ? (self.grid.options.enableVerticalScrollbar === uiGridConstants.scrollbars.NEVER ? 'hidden' : 'scroll') : 'hidden';
            }
            
            return styles;
        
        
        };

最佳答案

height: 100%; 添加到包含 height: auto; 的 .ui-grid 子元素可解决该问题。为了简洁起见,这里是 LESS/SASS 嵌套版本...

.ui-grid {
  height: auto;
   .ui-grid-viewport {
     height: 100% !important;
   }
 }

关于javascript - ui-grid 的高度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30983794/

相关文章:

html - IE7 不应用字体

html - 内容全宽,仅在固定高度侧边栏之后

html - twitter bootstrap 缩略图在 Chrome + Windows XP 以外的任何地方都没有正确对齐

jquery - 将文本 Angular 工具栏固定在滚动条上

带有函数参数的Javascript到innerhtml中

javascript - ASP.NET MVC JSON Entity Framework - 保存数据

javascript - 如何使用包含键在 LoopBack v4 中建立关系

javascript - AngularJS 中的过滤值选择控件?

javascript - 编译动态内容 - AngularJS

javascript - 光滑 slider 正则表达式过滤