【发布时间】:2017-06-29 23:55:57
【问题描述】:
我尝试遵循的每个示例都给了我同样的错误。我想单击一行并将其路由到包含该数据的页面。但我什至无法获得行点击注册。
我的精简控制器:
var CanadaApp = angular.module('CanadaApp', [ "ui.router", "ui.bootstrap", "ui.grid", "ui.grid.selection" ]);
CanadaApp.controller('mainController', ['$scope', 'dataService', 'uiGridConstants', function($scope, dataService, uiGridConstants) {
$scope.gridOptions = {
enableFiltering: false,
enableRowSelection: true,
onRegisterApi: function(gridApi){
$scope.gridApi = gridApi;
$scope.gridApi.grid.registerRowsProcessor( $scope.singleFilter, 200 );
gridApi.selection.on.rowSelectionChanged($scope,function(row){
var msg = 'row selected ' + row.isSelected;
$log.log(msg);
});
},
columnDefs: [
{ field: 'name' },
{ field: 'population' },
]
};
}]);
无论我阅读什么文档或遵循什么示例,我都会得到 p>
**TypeError: Cannot read property 'on' of undefined**
在行:
gridApi.selection.on.rowSelectionChanged
坦率地说,我不明白为什么要将 gridApi 分配给 $scope.gridApi 然后更改 grid Api,但这就是示例反复显示的内容:
http://plnkr.co/edit/EO920wsxuqr3YU8931GF?p=preview
http://ui-grid.info/docs/#/tutorial/205_row_editable
(我实际上计划根据行 ID 路由到另一个页面,所以这是另一个蜡球。)
【问题讨论】:
-
在
colDefs对象中使用cellTemplate属性使列可点击。 -
点击一行怎么样?