2015-01-19 4 views
-2

У меня есть столбец в базе данных mysql, называемый датой, и у каждой должности есть другая дата: 2015-1-1
Я создал функцию, чтобы проверить, соответствует ли сегодняшняя дата дате в mysql db поэтому он фильтрует сообщение по дате.Функция AngularJS для фильтрации данных

Вот мой 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; 
      } 


     } 

Но это не работает, какие-либо рекомендации?

+1

что вы здесь возвращаетесь? этот код выглядит так, как будто он вообще ничего не делает – Claies

ответ

0

Два вопроса:

  1. Почему вы потянув все данные первого и последующего применения фильтрации? Почему бы не ограничить запрос на нужную дату на стороне сервера и вернуть данные только для этой даты?

  2. Если вы хотите вытащить все данные за один раз, используйте фильтр в своем ng-repeat. Таким образом, данные становятся динамическими, и вы можете по-прежнему менять фильтр.

+0

Привет, Майкл! Спасибо. 1. Мне сказали, что можно фильтровать на стороне сервера, но мне нужно передать какую-то переменную в URL-адресе, например: /? Month = 1, я сделал какой-то поиск в Google и не смог заставить его работать. 2. Я мог бы использовать ng-repeat, но я попробовал свой код для фильтрации как месяца, так и дня, но не мог заставить это работать, сообщите мне, если вам нужна дополнительная информация? – Michel

0

Ваш код фильтра не имеет никакого смысла.

  1. Вы принимаете переменную с именем input.
  2. Вы создаете новый объект date с сегодняшней датой.
  3. Вы устанавливаете day, month и year переменные на день с сегодняшнего дня.
  4. Вы вручную создаете строку под названием matchDate на основе значений year, day и month.
  5. вы пытаетесь сравнить переменную matchDate с индексом массива на вашем input, используя переменную, которая никогда не была определена как value. Это никогда не будет оценено до true, по нескольким причинам, в первую очередь потому, что input[value] не имеет смысла. Кроме того, вы должны использовать === вместо ==.
  6. Если вы каким-то образом должны были оценить значение true, вы пытаетесь вернуть переменную с именем data, которая никогда не определяется внутри функции, поэтому, безусловно, null.
Смежные вопросы