Angular UI在列中显示网格数组

angular ui grid display array in a column

本文关键字:显示 网格 数组 UI Angular      更新时间:2023-09-26

我试图使数据绑定从数组表示显示在一列中。见http://jsfiddle.net/0vgb89vn/2/

例如:

var dataAsArray = {
"names": ["firstName", "lastName", "company", "employed"],
"data": [
    ["Cox", "Carney", "Enormo", true],
    ["Lorraine", "Wise", "Comveyer", false],
    ["Nancy", "Waters", "Fuelton", false]
]};

显示为

名|姓|公司|受雇

Cox | Carney | Enormo | true

Lorraine | Wise | conveyor | false

如果更简单,另一种数据表示可以是

var dataAsArrayOption2 = {
"names": ["firstName", "lastName", "company", "employed"],
"data": [
    ["Cox", "Lorraine", "Nancy"],
    ["Carney", "Wise", "Waters"],
    ["Enormo", "Comveyer", "Fuelton"],
    [true, false, false]
]

};

你知道怎么做数据隐藏吗?我们需要使用单元格模板吗?或者使用映射函数来检索每行和每列的数据?

这是我的问题的背景:

http://jsfiddle.net/0vgb89vn/2/

提前感谢我们的帮助!

您确实需要在接收后重新映射数据。我更新了你的小提琴。

在你的第一个格式中,你可以这样做

var dataAsArray = {
  "names": ["firstName", "lastName", "company", "employed"],
  "data": [
    ["Cox", "Carney", "Enormo", true],
    ["Lorraine", "Wise", "Comveyer", false],
    ["Nancy", "Waters", "Fuelton", false]
  ]
};
var dataOkToo = [];
for (var i = 0, len = dataAsArray.data.length; i < len; i++) {
  var obj = {};
  obj[dataAsArray['names'][0]] = dataAsArray['data'][i][0];
  obj[dataAsArray['names'][1]] = dataAsArray['data'][i][1];
  obj[dataAsArray['names'][2]] = dataAsArray['data'][i][2];
  obj[dataAsArray['names'][3]] = dataAsArray['data'][i][3];
  dataOkToo.push(obj);
}

这有点乱,但可以快速提供结果。

e:对于大量数据,可以使用更复杂的循环结构,如:

for (var i = 0, len = dataAsArray.data.length; i < len; i++) {
  var obj = {};
  for(var j = 0, lenTwo = dataAsArray['names'].length; j < lenTwo; j++) {
    obj[dataAsArray['names'][j]] = dataAsArray['data'][i][j];
  }
}

我不想混淆使用嵌套循环与一个简单的设置。