gpt4 book ai didi

javascript - 动态列的单元格过滤器,Angular ui 网格

转载 作者:行者123 更新时间:2023-11-28 05:10:22 26 4
gpt4 key购买 nike

我从 api 调用获取数据数组。根据这些数据,我只需要显示特定值。每个数组内部都是嵌套的数组事件属性。为了显示此嵌套数组,我将初始数据数组重新格式化为自定义数组。新数组只有一个限制,我必须保存从嵌套数组中获取的所有对象属性。网格显示数据和列定义运行良好,但只有一个问题我无法解决。网格内的数据显示为对象。我遵循了 ui-grid 文档,并为每列设置了单元格过滤器,但它不起作用。

那么我的错误在哪里呢?我很感激任何帮助。

这是我的代码和 plunker

    var app = angular.module('app', ['ngAnimate', 'ngTouch', 'ui.grid']);

app.controller('MainCtrl', ['$scope', '$http', 'uiGridConstants', '$interval', function ($scope, $http, uiGridConstants, $interval) {

$http.get('data.json')
.success(function(response) {

var array = [];
var events = response;

angular.forEach(events, function (field) {

var custom = field.eventProperties;

var tempObj = {};

tempObj.id = field.id;
tempObj.eventTypeName = field.eventTypeName;
tempObj.description = field.description;

for (var i = 0; i < custom.length; i++) {
tempObj[custom[i].name] = custom[i];
}

array.push(tempObj);

});

$scope.gridOptions.data = array;


$interval(function () {

for (var i = 0; i < $scope.gridOptions.columnDefs.length; i++) {
$scope.gridOptions.columnDefs[i].enableSorting = false;
$scope.gridOptions.columnDefs[i].cellFilter = 'cellValue';

}

console.log($scope.gridOptions.columnDefs);

$scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN);
$scope.gridApi.core.refresh();

}, 0, 1);
});


$scope.gridOptions = {
rowHeight: 50,
onRegisterApi: function (gridApi) {
$scope.gridApi = gridApi;
}
}


}])
.filter('cellValue', function() {
return function(cell) {
return cell.value
};
});

最佳答案

您已为每个 eventProperty 设置了整个 eventProperty 对象 (custom[i])。试试这个:

for (var i = 0; i < custom.length; i++) {
tempObj[custom[i].name] = custom[i].value;
}

关于javascript - 动态列的单元格过滤器,Angular ui 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41433451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com