我找了很多地方,但似乎找不到我要找的东西。这可能很简单,但我对 Angular 比较陌生,似乎无法弄清楚。
ng-repeat 工作正常,但我想过滤掉某些值。
我有一个包含 ng-repeat through data 的页面(请参阅下面的数据对象),并且我只想包含当前日期 > 数组(日期)中的项目值的页面。
vm.newsItems= [
{
ID: '1',
date: '5/12/2016',
newsTitle: 'This is news story header 1',
newsText: 'This is news Story Text 1. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
},
{
ID: '2',
date: '5/30/2016',
newsTitle: 'This is news story header 2',
newsText: 'This is news Story Text 2. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
}
页面代码:
<div class="box effect8" ng-repeat="newsItem in vm.newsItems">
<h3>{{newsItem.newsTitle}}</h3>
{{newsItem.newsText}}
</div>
最佳答案
尝试使用 filter $filter 添加谓词用于过滤掉项目:
newsItem in vm.newsItems | filter: getItemsFromThePast()
vm.getItemsFromThePast = function(item) {
var today = new Date();
return item.date < today;
}
我在这里假设两件事:
- 当前日期意味着
new Date()
- 特性
date
您的元素中有 是真实的Date
对象,如果它们是日期格式的字符串,则必须将它们转换为Date
对象优先
关于AngularJS ng-repeat 带过滤器,用于大于数组中日期的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37484331/