我尝试遵循的每个例子都给出了同样的错误。我想点击一行,让它路由到包含该数据的页面。但我甚至无法点击行进行注册。
我的精简控制器:
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' },
]
};
}]);
无论我阅读哪些文档或我遵循的示例,我都会
**TypeError: Cannot read property 'on' of undefined**
在线:
gridApi.selection.on.rowSelectionChanged
坦率地说,我不明白为什么它会将gridApi分配给$ scope.gridApi,然后更改网格Api,但这就是示例一遍又一遍地显示的内容:
http://plnkr.co/edit/EO920wsxuqr3YU8931GF?p=preview
http://ui-grid.info/docs/#/tutorial/205_row_editable
(我实际上计划根据行ID路由到另一个页面,这是另一个蜡球。)
答案 0 :(得分:0)
在ui.grid.selection
中注册app.js
后,错误对我来说消失了