在列定义中包含cellTemplate时,如果该cellTemplate包含CUSTOM_FILTERS,则会导致angular发生呕吐:

错误:语法错误: token 'CUSTOM_FILTERS'是表达式[row.entity.1 CUSTOM_FILTERS]的第14列的意外 token ,始于[CUSTOM_FILTERS]

即使在列def中使用默认的cellTemplate也会导致相同的错误。

cellTemplate = "<div class=\"ngCellText\" ng-class=\"col.colIndex()\"><span ng-cell-text>{{COL_FIELD CUSTOM_FILTERS}}</span></div>"

最佳答案

事实证明,ng-grid代码假设您已将自定义过滤器硬编码到指定的cellTemplate中:

self.cellTemplate = colDef.cellTemplate || $templateCache.get('cellTemplate.html').replace(CUSTOM_FILTERS, self.cellFilter ? "|" + self.cellFilter : "");

如您所见,如果您在列def中指定了cellTemplate,则它们不会进行替换。因此,如果要为列提供自定义的cellTemplate并希望使用cellFilter,则应执行以下操作:
cellTemplate = "<div class=\"ngCellText\" ng-class=\"col.colIndex()\"><span ng-cell-text>{{COL_FIELD |number:3}}</span></div>"

09-18 14:34