It turns out the ng-grid code assumes that you hardcoded your custom filter in the specified cellTemplate:
self.cellTemplate = colDef.cellTemplate || $templateCache.get('cellTemplate.html').replace(CUSTOM_FILTERS, self.cellFilter ? "|" + self.cellFilter : "");
As you can see, they do not replace if you specified cellTemplate in your def column. Therefore, if you provide a custom cellTemplate for a column and want cellFilter, you would do something like this:
cellTemplate = "<div class=\"ngCellText\" ng-class=\"col.colIndex()\"><span ng-cell-text>{{COL_FIELD |number:3}}</span></div>"
source share