繁体   English   中英

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

[英]Where can I get Angular ui-grid selected items

测试Angular ui-grid(ng-grid v.3.0)。 不能为我的生活找到选定的行。 我只是想在用户点击它时抓住行或行的行ID。 在这里找到了最热门的评论,但我认为这已经过时了: 从ng-grid获取选择的行?

有谁知道gridOptions.selectedItems存储在3.0中的哪个位置?

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

  1. 使用ui-grid-selection标记激活网格选择功能(并在您的应用中注册ui.grid.selection模块
  2. 注册gridApi并使用gridApi.selection访问getSelectedRows()

除了上面的步骤https://stackoverflow.com/a/26188783/2658127之外 ,您可能必须通过ng-click事件调用它来获取实际值/对象。 至少那是我的工作方式。

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

并从模板中调用selectRow()。

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

最简单的方法是:

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

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

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

    $scope.myGridApi.selection.getSelectedRows();

使用grid ui,您必须使用selection.on.rowSelectionChanged来更新存储selectedItem的范围变量。 通过这种方式,您可以使用绑定表达式中的值。

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);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM