我有一个声明如下的数组:
$scope.test=['blah', 'blah2'];
我想用ng-grid作为测试来显示数据。我做了以下事情:
$scope.sourceGridOptionsApprovers = {
plugins: [gridLayoutPlugin],
data : 'test',
columnDefs: [
{field: 'test', displayName: 'Approvers', width:'35%',
cellFilter: 'stringArrayFilter'}
]
};
我想过滤数组,这样我就可以将测试内容显示在ng-grid中的一个列中。我将以下内容添加到我的角度控制器中:
.filter('stringArrayFilter', function(){
return function(myArray) {
//console.log(myArray);
return myArray.join(', ');
};
});
但是当我尝试在过滤后显示数组的内容时,所有内容都显示为未定义,我认为这可能是我将数组传入过滤器的方式,但我并不完全当然。任何帮助将不胜感激。
答案 0 :(得分:0)
首先,我认为ngGrid严格要求具有属性的json对象。如果没有属性,则单元格无法与特定数据匹配,因此单元格的数据为“undefined”=>这会导致“未定义”错误消息。
所以你的数据需要像:
$scope.test=[{name: 'blah'}, {name: 'blah2'}];
其次,每行/单元格应用cellfilter,而不是整个数组。使用示例数据,单个单元格数据不包含任何数组,因此您将收到“无方法连接”错误消息。
使用过滤器时,数据的结构应该是这样的:
$scope.test = [{name: ['blah', 'blah2']}, {name: ['blah3', 'blah4']}];
以下是一个完整的工作示例: