在列定义中包含cellTemplate时,如果该cellTemplate包含CUSTOM_FILTERS,则会导致angular to puke:
错误:语法错误:令牌'CUSTOM_FILTERS'是表达式[row.entity.1 CUSTOM_FILTERS]第14列的一个意外标记,从[CUSTOM_FILTERS]开始
即使在列def中使用默认的cellTemplate也会导致相同的错误。
cellTemplate = "<div class=\"ngCellText\" ng-class=\"col.colIndex()\"><span ng-cell-text>{{COL_FIELD CUSTOM_FILTERS}}</span></div>"
答案 0 :(得分:8)
事实证明,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>"