2

angular-translate を使用しており、日付/時刻のローカリゼーションを行う必要があります。

したがって、変数の置換を行う 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?

2番目の推測も機能しません:

<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 に答える