我得到了以下gridOptions.columnDefs
$scope.generateReport = function(row) { alert("Test"); }; $scope.gridOptions.columnDefs = [ { name: 'Action',cellEditableCondition: false,cellTemplate: '<button ng-click="grid.appScope.generateReport(row)"> Report </button>' }];
它不起作用,按钮显示但是一旦点击它没有调用该功能.我正在关注他们的指南Here,我正在使用ui-grid – v3.0.0-RC.18.
我的html得到了以下内容.
<div id="grid1" ui-grid="gridOptions" ui-grid-cellnav ui-grid-edit ui-grid-expandable ui-grid-exporter class="myGrid"> </div>
我也尝试添加一个外部范围,但没有什么区别..
有任何想法吗?
解决方法
我点击ui-grid行中的按钮就像这样.
ng-click="getExternalScopes().delete($event,row)
我的控制器注入了$scope,第一行创建了对外部作用域的引用(我相信).
app.controller("MyController",function ($scope) { $scope.$scope = $scope;
HTML看起来像这样,它指的是外部范围.
<div ui-grid="gridOptions" class="someClass" external-scopes="$scope" ui-grid-selection ui-grid-resize-columns></div>
这是我的整个cellTemplate,如果它有帮助…
<div class="ui-grid-cell-contents ng-binding ng-scope"><button class="btn btn-danger {{getExternalScopes().deleteButtonClass(row)}} btn-xs btn-block" ng-click="getExternalScopes().delete($event,row)"><span class="glyphicon glyphicon-trash"></span></button></div>