我正在调用的REST API以下列格式返回一个数组:
["a", "b", "c", "d"]
我的ui-grid需要在一列中显示这些数据条目,每行一个。
我有:
$scope.items = [];
$scope.gridOptions = {
data: 'items'
};
我的$ http通话中的成功回调函数只是将$scope.items
设置为response.data
。
这适用于作为JSON对象数组接收的其他方法中的数据,但在这种情况下,我只是获取字符串,我在控制台中得到以下错误两次:
Error: colDef.name or colDef.field property is required
Wat do ??
答案 0 :(得分:2)
我通过创建这个实用程序函数来实现它:
function convertArrayOfStringsToGridFriendlyJSON(colName, arr) {
var out = [];
arr.forEach(function(entry){
var obj = {};
obj[colName] = entry;
out.push(obj);
});
return out;
};
然后使用我的列名和传入的数组将$scope.items
设置为此函数的输出。
答案 1 :(得分:0)
按照此 - > binding to 1D array
UI-Grid也可以绑定到一维基元数组 - 在这种情况下,使用uiGridConstants.ENTITY_BINDING将使用数据数组中的整个条目作为单元格的值而不是其中的字段。如果数据是字符串数组,或者单元格过滤器需要访问每个行对象中的多个字段,这将非常有用。
app.controller('OneDimensionCtrl', ['$scope', 'uiGridConstants', function ($scope, uiGridConstants) {
$scope.gridOptions = {
enableSorting: true,
columnDefs: [
{ name:'Name', field: uiGridConstants.ENTITY_BINDING }
],
data : [
"John Rogers",
"David Michaels",
"Andrew Johnson",
"Donald McDonald"
]
};
}]);