angularJS ng对大于数组中where date的日期使用筛选器重复
我找了很多地方,似乎找不到我要找的东西。这可能很简单,但我是新来的角度,似乎无法理解它 ng repeat可以正常工作,但我想过滤掉某些值 我有一个页面,其中包含ng repeat-through数据(请参见下面的数据对象),我只想包含当前日期>数组中项目值(日期)的页面 第页上的代码:angularJS ng对大于数组中where date的日期使用筛选器重复,angularjs,filter,angularjs-ng-repeat,Angularjs,Filter,Angularjs Ng Repeat,我找了很多地方,似乎找不到我要找的东西。这可能很简单,但我是新来的角度,似乎无法理解它 ng repeat可以正常工作,但我想过滤掉某些值 我有一个页面,其中包含ng repeat-through数据(请参见下面的数据对象),我只想包含当前日期>数组中项目值(日期)的页面 第页上的代码: <div class="box effect8" ng-repeat="newsItem in vm.newsItems"> <h3>{{news
<div class="box effect8" ng-repeat="newsItem in vm.newsItems">
<h3>{{newsItem.newsTitle}}</h3>
{{newsItem.newsText}}
</div>
{{newsItem.newsTitle}
{{newsItem.newsText}
尝试使用添加谓词以筛选出项:
vm.newitems中的新闻项|过滤器:getitemsfromtheast()
vm.getItemsFromThePast=函数(项){
var today=新日期();
返回item.date<今天;
}
我在这里假设两件事:
- 对于当前日期,您的意思是
新日期()
- 对象的属性
是实际的date
对象,如果它们是日期格式的字符串,则必须首先将它们转换为date
对象date
检查。这对你有用。我已将日期字符串转换为对象,并将其与筛选器一起使用
var myApp = angular.module('myApp', []);
myApp.controller('MyController', function ($scope) {
$scope.newsItems= [
{
ID: '1',
date: '5/12/2016',
newsTitle: 'This is news story header 1',
newsText: 'Some text.'
},
{
ID: '2',
date: '5/30/2016',
newsTitle: 'This is news story header 2',
newsText: 'Some text.'
}
];
angular.forEach($scope.newsItems, function(value,key) {
value.date = new Date(value.date);
});
$scope.filterDate = function(newsItem) {
var today = new Date();
return newsItem.date < today;
}
var myApp=angular.module('myApp',[]);
myApp.controller('MyController',函数($scope){
$scope.newitems=[
{
ID:'1',
日期:“2016年5月12日”,
新闻标题:“这是新闻标题1”,
新闻文本:“一些文本。”
},
{
ID:'2',
日期:2016年5月30日,
newsTitle:“这是新闻标题2”,
新闻文本:“一些文本。”
}
];
angular.forEach($scope.newItems,函数(值,键){
value.date=新日期(value.date);
});
$scope.filterDate=函数(新闻项){
var today=新日期();
return newsItem.date<今日;
}
})) 对于当前日期,我想您指的是今天?这可以使用
date
filter来完成。但是JSON对象中的日期参数必须是javascript的日期类型。@Yogesh日期过滤器用于格式化date
显示格式,而不是用于过滤ArrayOps中的项目,实际上您是正确的@NexusDuck。谢谢你指出。#NexusDuck是的,我是说new Date(),我更新了代码(并添加了转换日期的函数),但没有调用过滤函数。我在那里添加了一个警报,它没有起火,所以没有被呼叫。正如你所说的,我包括了,但由于某些原因,它没有点击它。它仍然在工作,这意味着对象中的所有项目都在显示,因此仍然在工作只是过滤块从未被调用。你可以提供一个plunkr/小提琴吗?我使用的是单页应用程序,并有路由,我不这样认为,但这可能是错误的吗?我哪里都没有同名的东西。
vm.getItemsFromThePast = function(item) {
var today = new Date();
return item.date < today;
}
var myApp = angular.module('myApp', []);
myApp.controller('MyController', function ($scope) {
$scope.newsItems= [
{
ID: '1',
date: '5/12/2016',
newsTitle: 'This is news story header 1',
newsText: 'Some text.'
},
{
ID: '2',
date: '5/30/2016',
newsTitle: 'This is news story header 2',
newsText: 'Some text.'
}
];
angular.forEach($scope.newsItems, function(value,key) {
value.date = new Date(value.date);
});
$scope.filterDate = function(newsItem) {
var today = new Date();
return newsItem.date < today;
}