angularJS ng对大于数组中where date的日期使用筛选器重复

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

我找了很多地方,似乎找不到我要找的东西。这可能很简单,但我是新来的角度,似乎无法理解它

ng repeat可以正常工作,但我想过滤掉某些值

我有一个页面,其中包含ng repeat-through数据(请参见下面的数据对象),我只想包含当前日期>数组中项目值(日期)的页面

第页上的代码:

    <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;
     }