我添加一些东西后,我使用过滤器来显示前一段时间:
angular.module('filters').('fromNow',function () { return function (date) { return moment(date).fromNow(); } });
如何自动触发过滤器的每一分钟,以便以前会刷新.例如,在过滤器中使用$timeout来实现这个?
谢谢!
@H_403_7@@H_403_7@
事实上,您的功能实际上已经在Angular Docs中得到了很好的描述.
对于你想使用这些指令的这些事情.您可以选择将过滤逻辑保留在过滤器功能中,也可以将整个“之前”逻辑放在指令内.无论你想要什么方式
JS:
app.filter('fromNow',function () { return function (date) { return moment(date).fromNow(); }; }); app.directive('time',[ '$timeout','$filter',function($timeout,$filter) { return function(scope,element,attrs) { var time = attrs.time; var intervalLength = 1000 * 10; // 10 seconds var filter = $filter('fromNow'); function updateTime() { element.text(filter(time)); } function updateLater() { timeoutId = $timeout(function() { updateTime(); updateLater(); },intervalLength); } element.bind('$destroy',function() { $timeout.cancel(timeoutId); }); updateTime(); updateLater(); }; } ] );
HTML:
<div ng-controller="AppController"> Time: <span time="2013-03-23 21:56"></span> </div>
再次,如果你看看Directive Docs,你会发现这个解决方案几乎是在该页面上找到的一个指令示例的完全剥离.
@H_403_7@