我有一个数组,我试图使用像这样的ng-grid显示:
http://plnkr.co/edit/G33IlPCNAdh1jmNTtVNO?p=preview
我知道ng-grid不能将field
部分作为数组 - 它需要一个JSON对象。我也理解,在上面提到我的plunkr时,如果您取消注释$scope.test2
并将$scope.test
的所有实例替换为$scope.test2
,则信息将显示$scope.test2
内的所有数据根据需要,而不是我在plunkr的当前状态中获得的undefined
消息。
如何以编程方式将$scope.test
更改为$scope.test2
?我只想将数组的格式更改为仅$scope.test2
ng-grid
。可能吗?如果有人能提供帮助那就太棒了。
编辑:
基本上我想改变
$scope.test = ['blah', 'blah2'];
看起来像
$scope.test2 = [{name:['blah', 'blah2']}]; //name can be changed to anything
//name just has to specify the name of the array inside this object.
这可能吗?
答案 0 :(得分:0)
只是做:
$scope.test2 = [{name: $scope.test}];
$scope.test
是一个对象引用,因此$scope.test
中的任何更改都会反映在$scope.test2[0].name
答案 1 :(得分:0)
核心问题是你需要一个对象数组,每个对象代表一行,这意味着你希望test看起来像这样:
$scope.test = [
{ test: 'blah' },
{ test: 'blah2' }
];
要以编程方式执行此操作,您可以执行以下操作:
$scope.test = [ 'blah', 'blah2' ];
$scope.testObjects = [];
$scope.test.forEach( function( val ){
$scope.testObjects.push( { test: val } );
});
$scope.gridOptions = {
data: 'testObjects',
columnDefs: [
{field: 'test', displayName: 'Test'},
]
};
摆脱了对过滤器的需求。请参阅my revised plunker。