gpt4 book ai didi

javascript - 自定义 ng-filter 用于匹配范围内的日期值

转载 作者:行者123 更新时间:2023-11-27 23:06:52 26 4
gpt4 key购买 nike

我正在尝试创建一个过滤器,用于过滤 ng-repeat 中的项目的日期。例如,在 div 标题“今天”中,仅显示在每个项目日期属性中设置了今天日期的项目。我希望最终在标记中得到这样的结果:

<li class="{{todo.category}}" ng-repeat="todo in todos | taskDate : today">
{{todo.title}}
</li>

待办事项结构示例:(日期是通过 AngularUI 引导指令生成的,因此不能 100% 确定其格式。)

$scope.todos = [
{name : 'Complete 5 tasks',
category: 'Life',
date: ''}
]

我目前拥有的方法和过滤器在这里:

Date.prototype.sameDay = function(d) {
return this.getFullYear() === d.getFullYear() && this.getDate() === d.getDate() && this.getMonth() === d.getMonth();
};


app.filter("taskDate", function() {
return function(input, date) {
var todaysDate = new Date();
var filtered = [];
angular.forEach(input, function(todo, index) {
if (todo.date instanceof Date) {
if (todo.date.sameDay(todaysDate)) {
filtered.push(todo);
}
} else if (todo.date == date) {
// filtered.push(todo);
}
});

return filtered;
};
});

当我使用以下过滤器时,这适用于显示具有今天日期的项目

 |taskDate 
,但我根本不知道如何扩展它以显示明天等。

编辑:设法让过滤器适用于今天,但不适用于其他日期

最佳答案

我认为你可以使用 Angular 的原生过滤器来帮助:

 <li class="{{todo.category}}" ng-repeat="todo in todos | filter:todoFilter('today')">


$scope.todoFilter= function(date) {
return function(todo) {
if(date==='today' && todo.date=== $scope.todaysDate)){
return true;
}
}
}

Example Fiddle

关于javascript - 自定义 ng-filter 用于匹配范围内的日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36508400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com