Как применить фильтр диапазона дат к angular js year или month?

#javascript #jquery #angularjs

#javascript #jquery #angularjs

Вопрос:

я новичок в angular JS. у меня есть дата, отформатированная таким образом, d MMM y. однако у меня есть два поля, из которых вызывается одно, а другое — другое, которое должно фильтровать date как rang на основе диапазона года или диапазона месяца. она — то, как я сортирую данные.

    <div class="transition-item col-md-12" ng-repeat="trn in Transactions">
<div  id="{{'containerOf' trn.TrnID}}" class="expand-trigger" 
   ng-click="expandTrns('containerOf' trn.TrnID,'contentOf' trn.TrnID)">
   <span class="glyphicon glyphicon-plus"></span> 
   <span class="glyphicon glyphicon-minus"></span>
</div>
<div class="col-md-7 transition-desc"><span ng-class="{'glyphicon glyphicon-arrow-up green-clr': trn.TrnType , 'glyphicon glyphicon-arrow-down red-clr': !trn.TrnType}"></span> {{trn.TrnSubject}}</div>
<div class="col-md-2 transition-amount">{{trn.TrnAmount | currency}}</div>
<div class="col-md-2 transition-date"><small>{{trn.TrnDate | date:"EEE, d MMM y"}}</small></div>
 

это форма

 <div class="left form-inline col-md-8">
                 <div class="col-md-5">
                  from :
                  <input class="form-control" type="text" ng-model="one">
                 </div>

                 <div class="col-md-5">
                   to :
                  <input class="form-control" type="number" ng-model="two">
                 </div>
                </div>
              </div>
              <div class="sorting">
                <div class="left ">
                Sort :
              </div>
              <div class="btn-toolbar">
                <div class="btn-group">
                  <a class="btn btn-primary" href="#fakelink"><span class="glyphicon glyphicon-arrow-up"></span></a>
                  <a class="btn btn-primary" href="#fakelink"><span class="glyphicon glyphicon-arrow-down"></span></a>
                </div>
              </div> <!-- /toolbar -->
              </div>
            </div>              
 

Комментарии:

1. Ваш код кажется неполным, и я не могу найти поля from и to , которые вы упомянули. Несмотря на то, что вы сказали, что вот как я сортирую данные , я не вижу никакой логики сортировки в коде. Пожалуйста, поделитесь тем, что вы пробовали, чтобы мы могли помочь.

2. я отредактирую сообщение, спасибо за ваш повтор.

Ответ №1:

Ваш вопрос все еще неясен после редактирования, поэтому я попытаюсь угадать, что вы хотите отфильтровать Date свойство коллекции с помощью входного диапазона месяцев. Вот как это сделать с помощью filter:

 <div class="transition-item col-md-12" ng-repeat="trn in Transactions | filter:inMonthRange">
 

inMonthRange определена ли функция пользовательского фильтра в области видимости для проверки месяца даты.

 $scope.inMonthRange = function(t){
  return t.dateField.getMonth()   1 >= $scope.from amp;amp; t.dateField.getMonth()  1 <= $scope.to;
}
 

Вы можете обратиться к этому плунжеру для рабочего примера. Фильтрация по году аналогична.

Комментарии:

1. спасибо, я понял это так же, как и вы. но когда я вызываю getmonth, он не работает, это формат даты 2015-06-01-T00:00:00

2. @user2918388 Как вы это назвали?

3. предупреждение (данные [1]. TrnDate.getMonth());

4. Спасибо, я заставляю его работать с помощью alert(новая дата(данные [1]. TrnDate).getMonth());

Ответ №2:

Попробуйте это:

Диапазон моментов JS действительно полезен.

Нажмите ЗДЕСЬ, чтобы проверить это