范围中匹配日期值的自定义ng筛选器
Custom ng-filter for matching date value in scope
我正在尝试创建一个过滤器,该过滤器将根据日期过滤ng repeat中的项目。例如,在div标题"today"中,仅显示在每个items date属性中设置了today日期的items。我希望最终在标记中得到这样的东西:
<li class="{{todo.category}}" ng-repeat="todo in todos | taskDate : today">
{{todo.title}}
</li>
todo结构示例:(日期是通过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;
}
}
}
Fiddle 示例
相关文章:
- AngularJs对ng消息的自定义替换
- 自定义指令中的AngularJS ng模型
- 与ng attr myCustomAttribute匹配的自定义属性指令
- 想要将ng个repeat对象传递给自定义筛选函数
- 为什么ng中的自定义指令在循环完成后重复运行
- AngularJS -- 创建自定义数据绑定和 ng-repeat
- ng-select 选项在与自定义指令一起使用时加倍
- 如何仅在文本字段中有值时才将自定义过滤器应用于 ng-repeat
- 柱形图中每列的 ng-谷歌图表自定义颜色
- AngularJS自定义指令ng显示/ng隐藏
- 自定义指令中的ng类不观察更新
- 范围中匹配日期值的自定义ng筛选器
- Angular2中列表组件的自定义模板(不包含ng内容的transclusion)
- angularjs:自定义直接中的绑定数据在使用“”后不再更新;track-by-;在ng重复中
- 使用angularjs中的自定义服务交换ng src属性
- ng如果初始动画不使用自定义指令
- Ng管理员自定义参考列表-具有创建新条目的能力
- ng重复自定义不同样式的显示模式
- 如何在 ng 映射标记(角度)中使用自定义图标
- 为每个元素 ng-repeat 应用自定义 ng-attr