Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从何处可以获取所选项目_Javascript_Angularjs_Angular Ui Grid - Fatal编程技术网

Javascript 从何处可以获取所选项目

Javascript 从何处可以获取所选项目,javascript,angularjs,angular-ui-grid,Javascript,Angularjs,Angular Ui Grid,测试角度ui网格(ng网格v.3.0)。我一辈子都找不到选定的行。我只想在用户单击该行时获取该行的行或甚至行ID。在这里找到了最重要的评论,但我认为这已经过时了: 有人知道3.0中存储的gridOptions.selectedItems的位置吗?这就是您想要的吗? 使用ui网格选择标签激活网格选择功能(以及应用程序中的ui.grid.selection模块注册) 注册gridApi并使用gridApi.selection访问getSelectedRows() 除了上面的步骤之外,您可能还需要通

测试角度ui网格(ng网格v.3.0)。我一辈子都找不到选定的行。我只想在用户单击该行时获取该行的行或甚至行ID。在这里找到了最重要的评论,但我认为这已经过时了:


有人知道3.0中存储的
gridOptions.selectedItems
的位置吗?

这就是您想要的吗?

  • 使用ui网格选择标签激活网格选择功能(以及应用程序中的ui.grid.selection模块注册)
  • 注册gridApi并使用gridApi.selection访问getSelectedRows()

  • 除了上面的步骤之外,您可能还需要通过ng click事件调用它来获取实际的值/对象。至少我是这样让它工作的

    Eg:
    $scope.selectRow = function(){
        $scope.gridApi.selection.getSelectedRows();
    };
    
    并从模板中调用selectRow()


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

    对于网格ui,您必须使用
    选择.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);
    

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

    最简单的方法是:

  • 通过向控制器添加以下内容来注册gridApi:

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

  • 访问所选项目的数组:

    $scope.myGridApi.selection.getSelectedRows();


  • 谢谢Rajush,我很感谢你提供的额外信息!