AngularJS - ng-grid数据不会显示在列大小调整上

时间:2014-07-26 08:12:03

标签: javascript angularjs ng-grid

我遇到一个问题,当列名称发生变化时,ng-grid数据不会显示在列大小调整上。

在 - 创造了一个傻瓜 http://plnkr.co/edit/eV9baoDOV9A46FZmKW8G?p=preview

请注意main.js中的以下函数,以显式更改列名和相应的数据。

$scope.reload = function(){
  $scope.columnDefinitions = [
      {field: 'first_col'},
      {field: 'second_col'}
    ];

  $scope.myData = [{first_col: "colData1", second_col: "colData2"},
                  {first_col: "colData3", second_col: "colData4"},
                  {first_col: "colData5", second_col: "colData6"}
                ];  
}

步骤 -

场景1(有效)

  1. 示例完全加载包括来自ng-grid的数据后,单击“更改”按钮。
  2. 这样,“name”和“age”列将变为“first_col”和“second_col”以及相应的数据。
  3. 场景2(不起作用)

    1. 重新运行示例。
    2. 一旦示例完全加载包括来自ng-grid的数据,请稍微调整列的大小。
    3. 调整大小后,单击“更改”按钮。
    4. 网格现在显示为空。
    5. 真的遇到了这个问题。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

按下更改时,似乎没有拾取列的宽度。如果您manually define it,它将起作用:

{field: 'first_col', width: 200},
{field: 'second_col', width: 200}

来自ng-grid documentation

  

宽度也可以用百分比(20%,30%),加权* s或“自动”(根据数据长度调整列的大小)来定义(非常类似于WPF / Silverlight)/ 注意: “auto”目前仅适用于单页应用,因为重新调整大小发生在“document.ready”上。仍在努力改善

所以我猜它是默认的“自动”,这就是为什么它不起作用。如果你尝试将“auto”(或任何基于%的)作为宽度,你也会得到错误。 我建议你在此期间使用解决方法。