我希望AngularJS过滤timeAgo应该应用于时间戳,以显示从时间戳传递的时间。这很简单:
filter('timeago', function() {
return function(input) {
return Date.now() - input;
}
});
但是当我想要 LIVE 时(当用户在页面上 - 我们每秒更新值/每个摘要时)它似乎并不那么容易。我们不更改输入值,因此不会重新计算过滤器。 是否可以在不添加额外参数的情况下每秒重新计算一次?
Fiddle示例。
答案 0 :(得分:1)
这是因为过滤器现在是无状态的,为了使它适用于您需要执行的过滤器:
function timeagoFilter(input) {
return Date.now() - input;
}
timeagoFilter.$stateful = true;
return timeagoFilter;
但我个人将其转换为指令并使用普通javascript更改值 - 如果它仅用于显示目的 - 因为它很容易搞乱摘要周期并使应用程序性能降低