我在哪里可以得到Angular ui-grid选定的项目

testingangular度网格(ng-grid v.3.0)。 不能为我的生活find选定的行。 我只想抓住行的行数,甚至当用户点击行的行数时。 在这里find最热门的评论,但我认为这已经过时了: 从ng-grid获取选定的行?

有没有人知道在哪里gridOptions.selectedItems被存储在3.0?

这是你在找什么? http://ui-grid.info/docs/#/tutorial/210_selection

  1. 使用ui-grid-selection标签激活网格selectfunction(和ui.grid.selection模块注册在您的应用程序中
  2. 注册gridApi并使用gridApi.selection访问getSelectedRows()

除了上面的步骤https://stackoverflow.com/a/26188783/2658127 ,您可能需要通过ng-click事件来调用它以获取实际的值/对象。 至less我是这样工作的。

 Eg: $scope.selectRow = function(){ $scope.gridApi.selection.getSelectedRows(); }; 

并从模板中调用selectRow()。

考虑到ui-grid没有最好的文档(特别是对于这个select的部分),这是对于像我一样困惑的人。

最简单的方法是:

  1. 通过添加你的控制器来注册gridApi:

    $scope.gridOptions.onRegisterApi = function(gridApi) { $scope.myGridApi = gridApi; };

  2. 访问所选项目的数组:

    $scope.myGridApi.selection.getSelectedRows();

使用网格UI,您必须使用selection.on.rowSelectionChanged来更新存储selectedItem的范围variables。 通过这种方式,您可以在绑定expression式中使用该值。

 var SelectController = function($scope) { ... $scope.selectedItem = null; $scope.gridOptions = { data : 'articles', enableRowSelection : true, multiSelect : false, enableRowHeaderSelection : false, ... }; $scope.gridOptions.onRegisterApi = function(gridApi) { // set gridApi on scope this.$scope.gridApi = gridApi; }.bind(this); $scope.gridOptions.onRegisterApi = function(gridApi) { // set gridApi on scope this.$scope.gridApi = gridApi; this.$scope.gridApi.selection.on.rowSelectionChanged($scope, function(row) { this.$scope.selectedItem = row.entity; }.bind(this)); }.bind(this); 

如果需要多个select,请使用数组而不是普通对象。