angularjs - 当 ng-grid 通过 ng-hide 将可见性从不可见更改为可见时,不会重新计算网格宽度

标签 angularjs

我有一个带有 ng-hide 属性和 width:100% 样式的 ng-grid。

<div class="grid-style" data-ng-grid="gridOpt"
  style="display: inline-block; height: 300px; width: 100%;">
</div>

这个网格第一次是不可见的,当我在 HTML 表单中选择某个选项后,它就变得可见。 当这个网格变得可见时,它的宽度是错误的。

有什么方法可以强制更新网格的布局吗?

最佳答案

我也遇到了同样的问题。也许与this issue有关。我创建了一个新指令作为解决方法:

myDirectives.directive('resizeWhen', function () {
    'use strict';
    return {
        restrict: 'A',
        scope: false,
        link: function (scope, elem, attrs, ctrl) {
            var resizeExpr = attrs.resizeWhen,
            listener = scope.$watch(resizeExpr, function (value) {
                if (value) {
                    elem.resize(); 
                    listener();
                }
            }, false);
        }
    };
});

您可以像下面这样使用它:

<div id="searchResultsGrid" ng-grid="searchResultsGrid" 
     resize-when="mode == 'search'">
</div>

请注意,您需要 jQuery 才能使上述指令发挥作用。

关于angularjs - 当 ng-grid 通过 ng-hide 将可见性从不可见更改为可见时,不会重新计算网格宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19804733/

相关文章:

javascript - 用户界面路由器 : Transform parameter from URL

angularjs - Angular中 Controller 之间的通讯

javascript - AngularJS:在指令中使用 JS 函数 - 不好的做法?

angularjs - ng-checked/checkbox 的异常行为

javascript - angular.js 错误 : factory. 函数(...)未定义

node.js - SPA 中的公共(public)和私有(private) socket.io 连接

java - 通过spring security(angularjs)获取登录用户的正确方法是什么

javascript - 如何在 Angular-dashboard-framework 中调用关闭小部件的函数?

javascript - 内联数组注释 DI 与 AngularJS 中的 $routeProvider 不兼容吗?

javascript - Angularjs 过滤器无法正确处理土耳其语字符