3

ng-hide 属性と width:100% スタイルの ng-grid があります。

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

このグリッドは最初は非表示ですが、HTML フォームでオプションを選択すると表示されます。このグリッドが表示されると、幅が間違っています。

グリッドのレイアウトを強制的に更新する方法はありますか?

4

2 に答える 2

3

同じ問題がありました。多分それはこの問題に関連しています。回避策として新しいディレクティブを作成しました。

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 が必要であることに注意してください。

于 2013-11-20T06:44:38.267 に答える
0

表示するデータがある場合にのみグリッドを含めるように ng-if を設定してみてください。

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

ソース: https://github.com/angular-ui/ng-grid/issues/855

于 2014-10-03T12:53:35.603 に答える