我想让AngularJS过滤器timeAgo应该应用于时间戳以显示从时间戳传递的时间。这很简单:
filter('timeago', function() {
return function(input) {
return Date.now() - input;
}
});
但是,当我想将其设置为 LIVE (当页面上的用户时,我们每秒/每个摘要更新一次值)似乎并不那么容易。我们不会更改输入值,因此不会重新计算过滤器。
是否可以使它每秒重新计算而无需添加额外的参数?
Fiddle示例。
最佳答案
发生这种情况是因为过滤器现在是无状态的,要使其适用于此过滤器,您需要执行以下操作:
function timeagoFilter(input) {
return Date.now() - input;
}
timeagoFilter.$stateful = true;
return timeagoFilter;
但就我个人而言,我会将其转换为指令并使用简单的javascript更改值(如果仅用于显示目的),因为这样很容易搞乱摘要循环并使应用程序性能下降
关于angularjs - AngularJS:如何实现Live TimeAgo过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42156015/