Angular UI-Grid Pivot

时间:2015-04-10 13:25:58

标签: angularjs ng-grid angular-ui-grid

我有这些Javascript对象的集合:(显示为DTO)

public class ParameterValueDTO : DataTransferObject
{
  public int Id { get; set; }
  public String Comments { get; set; }
  public String Description { get; set; }
}

默认情况下,AngularJS UI-Grid将为每个ParameterValue对象创建一个包含3列的行:Id,Comments,Description可以正常工作。

IMAGE: Standard objects mapping to table

我想要做的是为每个对象创建一个列"评论"值并将其绑定到相应的"描述"值。基本上旋转表,使它只有1行(暂时忘记ID列)。

我试过的javascript:

var cols = [];
var row = obj.data.ProductAttributes[0].Specifications[0].ParameterValues
var length = row.length;


for (var i = 0; i < length; i++) {
    cols.push({
        field: "Description",
        displayName: row[i].Comments
    });
}

$scope.gridOptions = {
    columnDefs: cols,
    data: row
};

以上结果显然是错误的:

IMAGE: One column, new row for each Description

是否有可能通过当前的数据结构来实现这一目标,或者我应该采取什么样的正确方法呢?

1 个答案:

答案 0 :(得分:0)

我修改代码只是为了重新处理您的数据。 ui-grid真的只喜欢绑定到列和行,它不能颠倒顺序。

所以你&#d;

var pivotData = [ {} ];
data.forEach(function(parameterDTO) {
  pivotData[0][parameterDTO.comments] = parameterDTO.description;
});

然后您应该能够将该新数据对象用作网格数据。