Javascript 从何处可以获取所选项目
测试角度ui网格(ng网格v.3.0)。我一辈子都找不到选定的行。我只想在用户单击该行时获取该行的行或甚至行ID。在这里找到了最重要的评论,但我认为这已经过时了: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() 除了上面的步骤之外,您可能还需要通
有人知道3.0中存储的
gridOptions.selectedItems
的位置吗?这就是您想要的吗?
除了上面的步骤之外,您可能还需要通过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);
如果需要多次选择,请使用数组而不是普通对象。最简单的方法是:
$scope.gridOptions.onRegisterApi=函数(gridApi){
$scope.myGridApi=gridApi;
};
$scope.myGridApi.selection.getSelectedRows();
谢谢Rajush,我很感谢你提供的额外信息!