4

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

错误:语法错误:标记“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>"
4

1 回答 1

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>"
于 2013-09-06T17:03:46.707 回答