Angular UI 网格 - 如何更改行的视图 select
Angular UI Grid - how to change view on row select
我有一个显示数据的网格。我希望能够通过单击网格行来路由到新视图。现在我什至无法注册一行 click/selection。我在我的网格定义中尝试过:
onRegisterApi: function (gridApi ) {
$scope.gridApi = gridApi;
gridApi.selection.on.onRowSelectionChanged($scope, function (rows) {
$scope.mySelections = gridApi.selection.getSelectedRows();
});
},
在 html 中调用 mySelections:
<p>{{mySelections}}</p>
这会导致错误:无法读取未定义的 属性 'on'。但是,我不知道什么是 'undefined'.
我也试过一个单独的函数:
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope, function (row) {
alert(row.isSelected);
//$scope.mySelections = gridApi.selection.getSelectedRows();
});
};
但它returns同样的错误。
我已将 ui.grid 和 ui.grid.selection 添加到我的 angular.module。我很想找到一个使用 rowselect link 到新页面的实际示例,但我必须找到任何东西。
Cannot read property 'on' of undefined.
表明 selection
属性 在您的 gridApi
对象上不可用,我会仔细检查您是否确实以正确的方式添加了依赖项:
angular.module('app', [
'ui.grid',
'ui.grid.selection'
]);
接下来,调用 gridApi.selection.on.onRowSelectionChanged
将不起作用,因为调用的方法是 rowSelectionChanged
而不是 onRowSelectionChanged
。你在第二个例子中做对了。对于其余的代码,您的代码似乎没问题,也许您的网格定义的其余部分有问题。这是一个使用 ui.router
进行视图更改的示例:
$scope.gridOptions = {
enableRowSelection: true,
enableRowHeaderSelection: false,
multiSelect: false,
onRegisterApi: function (gridApi) {
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope, function (rows) {
var selection = gridApi.selection.getSelectedRows();
$state.go('item', {item: selection[0]});
});
}
};
不要忘记将 "ui-grid-selection" 属性添加到您的 DIV :
<div class="gridStyle" ui-grid="gridOptions" ui-grid-selection ... ></div>
我有一个显示数据的网格。我希望能够通过单击网格行来路由到新视图。现在我什至无法注册一行 click/selection。我在我的网格定义中尝试过:
onRegisterApi: function (gridApi ) {
$scope.gridApi = gridApi;
gridApi.selection.on.onRowSelectionChanged($scope, function (rows) {
$scope.mySelections = gridApi.selection.getSelectedRows();
});
},
在 html 中调用 mySelections:
<p>{{mySelections}}</p>
这会导致错误:无法读取未定义的 属性 'on'。但是,我不知道什么是 'undefined'.
我也试过一个单独的函数:
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope, function (row) {
alert(row.isSelected);
//$scope.mySelections = gridApi.selection.getSelectedRows();
});
};
但它returns同样的错误。
我已将 ui.grid 和 ui.grid.selection 添加到我的 angular.module。我很想找到一个使用 rowselect link 到新页面的实际示例,但我必须找到任何东西。
Cannot read property 'on' of undefined.
表明 selection
属性 在您的 gridApi
对象上不可用,我会仔细检查您是否确实以正确的方式添加了依赖项:
angular.module('app', [
'ui.grid',
'ui.grid.selection'
]);
接下来,调用 gridApi.selection.on.onRowSelectionChanged
将不起作用,因为调用的方法是 rowSelectionChanged
而不是 onRowSelectionChanged
。你在第二个例子中做对了。对于其余的代码,您的代码似乎没问题,也许您的网格定义的其余部分有问题。这是一个使用 ui.router
进行视图更改的示例:
$scope.gridOptions = {
enableRowSelection: true,
enableRowHeaderSelection: false,
multiSelect: false,
onRegisterApi: function (gridApi) {
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope, function (rows) {
var selection = gridApi.selection.getSelectedRows();
$state.go('item', {item: selection[0]});
});
}
};
不要忘记将 "ui-grid-selection" 属性添加到您的 DIV :
<div class="gridStyle" ui-grid="gridOptions" ui-grid-selection ... ></div>