无法使用Angular UI Grid获取选定行

4

我有两个带有可选择行的网格。我想要能够将所选行中的数据获取到另一个数据对象中,以便我可以将其传递给后端服务。以下是相关代码:

angular.module('gridPanel',['ui.bootstrap','ui.grid', 'ui.grid.edit', 'ui.grid.rowEdit', 'ui.grid.cellNav', 'ui.grid.selection'])
.controller('GridPanelController', function($scope, $log, referenceDataService){

    $scope.nameGrid = {
        enableRowSelection: true,
        enableRowHeaderSelection: false,
        multiSelect: true,
        onRegisterApi: function(gridApi) {
            $scope.gridApiNames= gridApi;
        },
        columnDefs: [
            {name: 'Name', field: 'name'}
            {name: 'Description', field: 'description'}
        ],
        data:[]
    };

    $scope.regionsGrid = {
        enableRowSelection: true,
        enableRowHeaderSelection: false,
        multiSelect: true,
        onRegisterApi: function(gridApi) {
            $scope.gridApiRegions = gridApi;
        },
        columnDefs: [
            {name: 'Region', field: 'region'}
        ],
        data:[]
    };

    referenceDataService.getAllNames().then(function (data){
        $scope.nameGrid.data = data;
    });

    referenceDataService.getRegions().then(function (data){
        $scope.regionsGrid.data = data;
    });

    $scope.debug = function(obj) {
        var dataObj = {
            names: [],
            regions: []
        };

        dataObj.regions = $scope.gridApiRegions.selection.getSelectedRows();
        dataObj.names= $scope.gridApiNames.selection.getSelectedRows();

        $log.log(JSON.stringify(dataObj, null, 4));
    };
});

然而,当我在控制台中检查日志时,它向我展示dataObj.regions和dataObj.names都是空数组。实际表格中的数据正常显示,当我点击它们时也没有任何问题-我可以选择多行而没有问题。问题仅出现在我点击提交按钮时,目前它会定向到$scope.debug以便我可以在控制台中查看对象。我表单中有其他字段,大多数是文本字段,当我在控制台日志中点击调试时,它们也正常显示,所以唯一有问题的地方就是获取选定行。提前感谢!编辑:另外,当我尝试记录只有“getSelectedRows”部分时,它返回一个空数组。
1个回答

2

找到了问题所在。原因是我在网页的其他地方(在模态框内)使用了相同的网格来显示相同的信息。一旦我创建了两组网格,问题就解决了。似乎需要两组完成同样目的的网格有点低效,但我想这可能就是现实吧?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接