需要根据外部下拉列表中的列名单独获取 ui 网格列数据

need to get ui grid column data alone based on column name from external dropdown

我在 angularjs 应用程序中使用 Ui 网格。我的要求uirement 是我有一个外部下拉列表(在ui 网格的外侧),其中包含ui 网格的所有列名。现在,当我 select 任何特定的列名时,我只需要获取数组中的该列数据。有什么简单的方法可以实现吗?

例如,在这种情况下,http://ui-grid.info/docs/#/tutorial/217_column_moving,如果我在外部下拉列表中 select 'name',那么我需要得到 ['Sandoval Mclean','Nieves Mack', ...], 同样如果我 select 'email', 那么我需要得到 [' sandovalmclean@zolavo.com', 'nievesmack@oulu.com', ... ]

Plnkr

真的很简单,只需从 columnDefs 构建下拉列表,这样您就知道您获得了有效的对象属性并在下拉列表更改时迭代它们:

HTML:

<select ng-model="selectedColumn" 
  ng-options="opt.name as opt.name for opt in gridOptions.columnDefs"
  ng-change="onColSelect()"></select>

<ol>
  <li ng-repeat="obj in myData track by $index">{{obj}}</li>
</ol>

JS:

$scope.onColSelect = function (){
     $scope.myData = [];
    angular.forEach($scope.gridOptions.data, function (row, key) {
      $scope.myData.push(row[$scope.selectedColumn]);         
});