我正在使用angular-translate,需要进行日期/时间本地化。
因此,我需要对滤波器参数应用时间格式滤波器(角度矩),以进行变量替换的角度平移滤波器。
但这应该是一个普遍的问题/用例,与angular-translate和angular-moment无关。
没有参数过滤它可以工作(但我没有本地化的时间格式):
<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。
答案 0 :(得分:0)
供将来参考 - 您需要在表达式周围添加括号,如下所示:
<div data-ng-repeat="msg in data.messages">
{{msg.text | translate:{ timestamp: (msg.timestamp | amDateFormat:'LT') } }}
</div>
这是相关部分:(msg.timestamp | amDateFormat:'LT')