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

时间:2015-05-19 15:21:42

标签: angularjs angular-ui-grid

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

我的测试代码:

$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发布的全面事件列表?

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

您可以在行,列等上使用事件侦听器。文档在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]);
                }
            }

并选择您要选择的任何行。

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