2

我正在使用角度翻译,需要进行日期/时间本地化。

因此,我需要在进行变量替换的角度平移过滤器的过滤器参数上应用时间格式过滤器(角矩)。

但这应该是一个独立于角平移和角矩的一般问题/用例。

没有参数过滤它可以工作(但我没有本地化时间格式):

<div data-ng-repeat="msg in data.messages">;
   {{msg.text | translate:{timestamp: msg.timestamp } }}
</div>

不起作用:

<div data-ng-repeat="msg in data.messages">
  {{msg.text | translate:{timestamp: msg.timestamp | amDateFormat:'LT'} }}
</div>

正在产生语法错误:

Error: [$parse:syntax] Syntax Error: Token '|' is unexpected, expecting [}] at column 73 of the expression [msg.text | translate:{timestamp: msg.timestamp | amDateFormat:'LT' } ] starting at [| amDateFormat:'LT' } ].
http://errors.angularjs.org/1.2.15/$parse/syntax?

第二个猜测也不起作用:

<div data-ng-repeat="msg in data.messages">
 {{msg.text | translate:{timestamp: {msg.timestamp | amDateFormat:'LT'} } }}
</div>

正在产生语法错误:

Error: [$parse:syntax] Syntax Error: Token '|' is unexpected, expecting [}] at column 74 of the expression [msg.text | translate:{timestamp: {msg.timestamp | amDateFormat:'LT'} } ] starting at [| amDateFormat:'LT' } } ].
http://errors.angularjs.org/1.2.15/$parse/syntax?

我正在使用 AngularJS 1.2.15。

4

1 回答 1

0

以供将来参考 - 您需要在表达式周围添加括号,如下所示:

<div data-ng-repeat="msg in data.messages">
  {{msg.text | translate:{ timestamp: (msg.timestamp | amDateFormat:'LT') } }}
</div>

这是相关部分:(msg.timestamp | amDateFormat:'LT')

于 2014-11-13T14:37:26.123 回答