gpt4 book ai didi

javascript - Angularjs ng 网格,当网格选项中的 columnsDef 在多个 ng 网格显示期间不同时,无法显示某些 ng 网格的数据

转载 作者:行者123 更新时间:2023-12-02 16:37:48 24 4
gpt4 key购买 nike

我正在尝试通过单击按钮来显示多个 ngGrid。但是当这些网格的网格选项中的columnDef选项不同时,问题就来了。请找到我的骗子http://plnkr.co/edit/y878sCsl3PJ04MhcAKYI?p=preview 。在这里,当我们单击“创建多个 ng 网格”时,网格 2 和网格 3 数据显示正常,因为网格选项中的这两个 columnsDef 是相同的。但是Grid1数据没有出现,其在Grid选项中的columnDef与Grid2和Grid3不同。作为引用,我通过“Create ng Grid1”和“Create ng Grid2”将它们单独分开,它们工作正常。我尝试使用“创建多个网格”按钮一起创建相同的网格。但第一个网格数据没有出现。谁能帮我解决一下吗?

以下是我的网格选项设置代码:

if (dashletteId == 1) {

$scope.myData = $scope.tabs[dashVar].data;
$scope.myColumnDefs = $scope.getColumnDefs($scope.tabs[dashVar].columns);
$scope[gridOptions] = {
data: 'myData',
showGroupPanel: true,
jqueryUIDraggable: false,
columnDefs: $scope.myColumnDefs
};



} else {


$scope.myData = $scope.tabs[dashVar].data;
$scope.myColumnDefs = $scope.tabs[dashVar].columns;
$scope[gridOptions] = {
data: 'myData',
showGroupPanel: true,
jqueryUIDraggable: false,
columnDefs: $scope.myColumnDefs
};
}

$scope.getColumnDefs = function( columns ){
var columnDefs = [];

columnDefs.push({field: 'mode', displayName: 'Mode', enableCellEdit: true, width: '10%'});
columnDefs.push({field:'service', displayName:'Service', enableCellEdit: true, width: '10%'});

angular.forEach(columns, function( value, key ) {
columnDefs.push({field: key, displayName: value, enableCellEdit: true, width: '10%' })
});

return columnDefs;
};

最佳答案

所有 3 个网格 columnDefs 都指向 $scope.myColumnDefs 最终所有网格的 columnDefs 都会被评估为同一个数组。

您可能需要分隔要分配给columnDefs的范围变量。

var template = '<div class= "chartsDiv">';

var config = {
1: {
gridOptions: 'gridOptionsOne',
data: 'dataOne',
columnDefs: 'colDefsOne'
},
2: {
gridOptions: 'gridOptionsTwo',
data: 'dataTwo',
columnDefs: 'colDefsTwo'
},
3: {
gridOptions: 'gridOptionsThree',
data: 'dataThree',
columnDefs: 'colDefsThree'
},
};
for (var dashVar = 0; dashVar < $scope.tabs.length; dashVar++) {
var name = "Recovery";
var dashletteId = $scope.tabs[dashVar].dashletteId;
var axisType = $scope.tabs[dashVar].axisType;
var chartName = "chart" + name.replace(/ +/g, "") + dashVar;
var tableData = "chart" + name.replace(/ +/g, "") + dashVar;
var gridOptions = "gridOptions" + chartName;


if (axisType == "table") {


if (dashletteId == 1) {
$scope[config[dashletteId].columnDefs] = $scope.getColumnDefs($scope.tabs[dashVar].columns);
} else {
$scope[config[dashletteId].columnDefs] = $scope.tabs[dashVar].columns;
}
$scope[config[dashletteId].data] = $scope.tabs[dashVar].data;
$scope[config[dashletteId].gridOptions] = {
data: config[dashletteId].data,
showGroupPanel: true,
jqueryUIDraggable: false,
columnDefs: config[dashletteId].columnDefs
};

template += ' <div class="col"> <p class="graphtitle">' + $scope.tabs[dashVar].dashletteName + ' </p> <div class="gridStyle" ng-grid="' + config[dashletteId].gridOptions + '"></div>';
}


}

template += ' </div>';
// alert(template)
angular.element(document.body).append($compile(template)($scope));

关于javascript - Angularjs ng 网格,当网格选项中的 columnsDef 在多个 ng 网格显示期间不同时,无法显示某些 ng 网格的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27763853/

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