我正在使用 angular-translate 并且需要进行日期/时间本地化。
因此,我需要在执行变量替换的 Angular 平移过滤器的过滤器参数上应用时间格式过滤器( Angular 矩)。
但这应该是独立于 Angular 平移和 Angular 矩的一般问题/用例。
没有参数过滤它就可以工作(但我没有本地化时间格式):
<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。
最佳答案
为了将来引用 - 您需要在表达式周围添加括号,如下所示:
<div data-ng-repeat="msg in data.messages">
{{msg.text | translate:{ timestamp: (msg.timestamp | amDateFormat:'LT') } }}
</div>
这是相关部分:(msg.timestamp | amDateFormat:'LT')
关于javascript - 对过滤器参数应用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22862408/