如何在过滤器参数中使用过滤器?

时间:2021-04-01 09:57:29

标签: angular

我有一个日期,我想应用一种取决于语言的格式,所以我想获取包含该格式的字符串并将其用作日期格式的参数。但它告诉我该表达式没有有效的语法,怎么办?

Syntax Error: Token '{' invalid key at column 46 of the expression [resultsDate | date:{{'date.format' | translate] starting at [{'date.format' | translate].

{{ resultsDate | date:{{'date.format' | translate }}  }}

2 个答案:

答案 0 :(得分:1)

我不确定 'date.format' | translate 是否是调整日期格式本地化的正确方法。事实上,Angular date 管道接受一个 locale 参数。请参阅 here 以应用 locale 参数。

也就是说,您可以将第一个管道包裹在带有 <ng-container>*ngIf 中,并利用它的 as 构造来“创建”一个局部变量。 <ng-container> 标记不会添加到其他元素中,并且会在呈现的 DOM 中被注释掉。

试试下面的方法

<ng-container *ngIf="(date.format | translate) as translatedFormat">
  {{ resultsDate | date:translatedFormat }}
</ng-container>

答案 1 :(得分:0)

你可以这样做:

{{ resultsDate | date: 'translateValue' }}

内部 resultsDate 管道句柄参数 translateValue。