加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 自动刷新过滤器

发布时间:2020-12-17 07:33:23 所属栏目:安全 来源:网络整理
导读:我添加一些东西后,我使用过滤器来显示前一段时间: angular.module('filters').('fromNow',function () { return function (date) { return moment(date).fromNow(); }}); 如何自动触发过滤器的每一分钟,以便以前会刷新.例如,在过滤器中使用$timeout来实现这
我添加一些东西后,我使用过滤器来显示前一段时间:
angular.module('filters').('fromNow',function () {
    return function (date) {
        return moment(date).fromNow();
    }
});

如何自动触发过滤器的每一分钟,以便以前会刷新.例如,在过滤器中使用$timeout来实现这个?

谢谢!

事实上,您的功能实际上已经在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>

Plunker

再次,如果你看看Directive Docs,你会发现这个解决方案几乎是在该页面上找到的一个指令示例的完全剥离.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读