如何将行选择设置为新添加的行?

How to set row selection to newly added row?

我需要将 selection 设置为新添加的行。 输入 $scope.gridApi.selection.selectRow(newObject) 时,网格的行模型没有新行,因此不能 select 它。 方法 addRow 完成后,网格显示新行(和数据)但未生成 selection。

我的测试代码:

$scope.addRow = function() {
    $scope.gridOptions.data.unshift({
        // my new data object
    });

    var newObject = $scope.gridOptions.data[0];
    $scope.gridApi.selection.selectRow(newObject);
};

我怎样才能实现这种行为?

在angularjs ui-grid 中是否有类似'rowAdded' 的事件我必须听? ui-grid 是否有完整的事件列表?

感谢帮助!

您可以对行、列等进行事件侦听。文档在这里 http://ui-grid.info/docs/#/api/ui.grid.class:Grid

您可以像下面这样在onRegisterApi中添加数据监听器,

onRegisterApi : function(gridApi)
            {
                if(!$scope.gridApi) 
                {
                    $scope.gridApi = gridApi; 
                    $scope.gridApi.grid.registerDataChangeCallback(function(data)
                    {
                      $scope.gridApi.selection.selectRow($scope.gridOptions.data[0]);
                    }, [uiGridConstants.dataChange.ROW]);
                }
            }

和 select 您想要的任何行 select。

这是一个有效的 plnkr。 http://plnkr.co/edit/NjnMb65w86L0bKmkkJp0?p=preview