根据时间计数器(过期日期)Angularjs删除项目

时间:2014-05-01 02:39:29

标签: angularjs

我有一个日期与(YYYYMMDDhhmms)格式相关联的项目列表,并且想要在每张卡片上附加一些事件以查明项目日期是否已过期,如果过期则需要删除该项目。更像是按每个项目计算的时间。

这样做的最佳方式是什么?

jsfiddle.net/tomalex0/jc6nE/2/

1 个答案:

答案 0 :(得分:0)

我能够实现该功能。

可以在此处找到工作演示

http://jsfiddle.net/tomalex0/jc6nE/8/

请更改日期时间以查看实时体验。

一个问题是,是否最好剥离不同的超时? 如果有很多项目,是否会产生一些内存问题?

var arrayval= [{
    "title" : "Title 1",
    "expire_date" :  "04/30/2014 10:055 PM"
},{
    "title" : "Title 2",
    "expire_date" : "04/30/2014 09:56 PM"
},{
    "title" : "Title 3",
    "expire_date" : "04/30/2014 09:57 PM"
},{
    "title" : "Title 4",
   "expire_date" : "04/30/2014 09:58 PM"
}];

控制器

function TodoCtrl($scope, $filter) {

 $scope.sorted = arrayval;
}

指令

angular.module('counterApp', []).directive('relativeTime', function($timeout) {

function update(scope, element) {
    var  timeDiff =  moment(scope.actualTime).diff(moment())
    element.find(".item-ticker").html(timeDiff);


   console.log("inside update",scope)
    var timeoutVar = $timeout(function() {
        update(scope, element);
    }, 1000);

    if(timeDiff < 0 ){
        element.remove();
        $timeout.cancel(timeoutVar);
        console.log("ithappened",scope);
    }
}

return {
    scope: {
        actualTime: '=relativeTime'
    },
    link: function(scope, element) {
        update(scope, element);
    }
};
});