【问题标题】:How to get selected row in angularjs UI-GRID on row selected event如何在行选择事件中获取angularjs UI-GRID中的选定行
【发布时间】:2016-06-24 15:06:28
【问题描述】:

我的应用程序中有一个 ui-grid,我想在用户从网格中选择一行时获取选定的行(单行可选网格)。

我知道单击按钮时如何通过 gridApi 获取选定的行。但是我无法在 row selected 事件中立即获得选定的行。

【问题讨论】:

    标签: angularjs angular-ui-grid


    【解决方案1】:

    需要注册api函数并使用如下图

     $scope.gridOptions.onRegisterApi = function(gridApi){
    
       $scope.gridApi = gridApi;
    
       gridApi.selection.on.rowSelectionChanged($scope, function(row){ 
        $scope.countRows = $scope.gridApi.selection.getSelectedRows().length;
        });
    
       gridApi.selection.on.rowSelectionChangedBatch($scope, function(row){ 
        $scope.countRows = $scope.gridApi.selection.getSelectedRows().length;
        });
    }; 
    

    【讨论】:

      【解决方案2】:

      您可以绑定 ng-click 获取 $event 的行。

      修改模板并引用appScope

      $templateCache.put('ui-grid/uiGridViewport',
          ....
          "<div ng-repeat=\"(rowRenderIndex, row) in rowContainer.renderedRows track by $index\"" +
          "ng-click=\"grid.appScope.onClickRow(row, $event)\"" +
          ....
      );
      

      【讨论】:

        【解决方案3】:

        只需添加:

        gridApi.selection.on.rowSelectionChanged($scope,function(row){
            console.log(row.entity);
          });
        

        在 ui grid 的 register api 函数中。 row.entity 将给出选定的行

        更多细节在这里:http://ui-grid.info/docs/#/tutorial/210_selection

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-28
          • 1970-01-01
          • 2017-04-15
          • 1970-01-01
          • 2016-08-13
          • 1970-01-01
          • 1970-01-01
          • 2013-06-29
          相关资源
          最近更新 更多