AngularJS函数用于过滤数据

AngularJS函数用于过滤数据,angularjs,Angularjs,我在mysql数据库中有一个名为date的列,每个帖子都有一个不同的日期,如:2015-1-1 我创建了一个函数来检查今天的日期是否与mysql数据库中的日期匹配,以便它按日期过滤帖子 这是我的app.js app.controller('TimeController', function($scope, $http) { $http.post('ajax/getQuotes.php').success(function(data){ $scope.quote

我在mysql数据库中有一个名为date的列,每个帖子都有一个不同的日期,如:2015-1-1 我创建了一个函数来检查今天的日期是否与mysql数据库中的日期匹配,以便它按日期过滤帖子

这是我的app.js

  app.controller('TimeController', function($scope, $http) {
      $http.post('ajax/getQuotes.php').success(function(data){

         $scope.quote = filterByDate(data);

      });


      function filterByDate(input) {
          var date = new Date();

          var day = date.getDate();
          var month = date.getMonth() + 1;
          var year = date.getFullYear();
          var matchDate = year + "-" + day+ "-" + month;
          if( input[value] == matchDate){
              return data; 
          }


      }
但这不起作用,有什么建议吗?

两个问题:

为什么要先提取所有数据,然后应用过滤器?为什么不在服务器端将请求限制为所需的日期,并只返回该日期的数据

如果要一次提取所有数据,请使用ng repeat中的筛选器。这样,您的数据是动态的,之后仍然可以更改过滤器


你的过滤代码没有任何意义

您接受名为input的变量。 使用今天的日期创建新的日期对象。 将日、月和年变量设置为从今天开始的一个月中的一天。 您可以基于年、日和月值手动构建名为matchDate的字符串。 您尝试使用一个从未定义过的变量value将matchDate变量与输入上的数组索引进行比较。由于一些原因,这永远不会被评估为真,特别是因为输入[值]毫无意义。此外,您应该使用===而不是==。 如果比较结果的计算结果为true,则尝试返回一个名为data的变量,该变量从未在函数中定义过,因此肯定为null。
你回来干什么?这段代码看起来根本没什么用嗨,迈克尔!非常感谢。1.我被告知可以在服务器端进行过滤,但我需要在url中传递一些变量,如:/?month=1,我进行了一些谷歌搜索,但无法使其工作。2.我可以使用ng repeat,但我尝试了我的代码来过滤月和日,但也无法使其工作,如果您需要更多信息,请让我知道?