问题
I m trying to work with celltemplate. But click event did not work.
$scope.format = function(val){
return val.replace(/\//g, "");
};
var executionColumns = {
data: [],
enableSorting: true,
paginationPageSizes: [25, 50, 75],
paginationPageSize: 25,
enableColumnMenu: true,
enableFiltering: true,
columnDefs: [
{ field: 'StartDate', cellTemplate: '<button ng-click="format (row.entity)">log</button>' },
{ field: 'Status' },
]
};
So what should I do? What is the wrong?
回答1:
It works for me like the 2nd code
columnDefs: [
{ field: 'StartDate', cellTemplate: '<button ng-click="format(grid.getCellVale(row.entity) )">log</button>' },
{ field: 'Status' },
]
or move your format function to an externalscope defined as
$scope.globalExternalScope = {
format:function(entity){..........}
}
and then use the template like
columnDefs: [
{ field: 'StartDate', cellTemplate: '<button ng-click="getExternalScopes().format(grid.getCellVale(row.entity) )">log</button>' },
{ field: 'Status' },
]
回答2:
Use
<button ng-click="grid.appScope.format (row.entity)">log</button>
it is working for me now!
回答3:
In case you are using .component
inside of which you render a ui-grid
and your method is defined as:
this.handleClick = function(){...}
It will be available to you in cellTemplate
via
cellTemplate: '<button ng-click="grid.appScope.$ctrl.handleClick()">log</button>' }
来源:https://stackoverflow.com/questions/28556260/button-click-does-not-work-in-celltemplate-angular-grid