我有一个日期与(YYYYMMDDhhmms)格式相关联的项目列表,并且想要在每张卡片上附加一些事件以查明项目日期是否已过期,如果过期则需要删除该项目。更像是按每个项目计算的时间。
这样做的最佳方式是什么?
jsfiddle.net/tomalex0/jc6nE/2/
答案 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);
}
};
});