当我尝试使用过滤器进行一次性绑定时,我收到了无效的日期错误:
<td>1w vol:</td>
<td>{{ :: edit_tag.termObject.vol }}</td>
<td>Added by:</td>
<td>{{ :: edit_tag.termObject.user }}</td>
<td>Timestamp:</td>
<td>{{ :: edit_tag.termObject.time | fromTimestamp:'MMM Do YYYY'}}</td>
以下工作当然,但是这个日期永远不会改变,所以我不需要使用双向绑定。有没有办法实现这个目标?
{{ edit_tag.termObject.time | fromTimestamp:'MMM Do YYYY'}}
我的过滤器是否有帮助:
.filter("fromTimestamp", function() {
return function(timestamp, format) {
return moment.unix(timestamp).format(format)
}
});
答案 0 :(得分:1)
这个问题确实引用了这个issue 'One-time binding doesn't work with filters'。在经过一番讨论之后,外卖是:
一次性绑定或不给定表达式需要稳定。您的 过滤器使得模型永远不会稳定因此错误。
因此,作为一种解决方法,您可以在控制器中使用带有momentjs
的表达式来实现此目的:
app.controller('test', function($scope, moment){
//somehow we obtain edit_tag.termObject.time
var desiredFomat = 'MMM Do YYYY';
$scope.formattedTime = moment.unix(edit_tag.termObject.time).format(desiredFomat);
})
然后在你的模板中:
<td>{{::formattedTime}}</td>
答案 1 :(得分:1)
尝试
<td>{{ :: (edit_tag.termObject.time | fromTimestamp:'MMM Do YYYY')}}</td>