просачиваться оказанные по Угловому рангу дат Материально

Хорошие, посмотрим вы можете помогать мне, что я очень зеленый с Угловым Материалом

у меня есть таблица с N реестры и я пробую делать фильтр из-за ранга дат. у меня есть select с выборами (1 день, 5 дней, 1 неделя, 15 дней), которые загружаются veriable

JS

vm.rangos=[
     {id:"1",name:'1 día',value:'1'},
     {id:"2",name:'5 días',value:'5'},
     {id:"3",name:'1 Semana',value:'7'},
     {id:"4",name:'15 días',value:'15'}
  ];

HTML

<div layout="row" flex="90" layout-align="start center">
                        <label flex="25">Rango</label>
                        <select flex="60" ng-model="vm.rangoSelected" placeholder="" ng-options="ran.name for ran  in vm.rangos" class="selectPersonalizado ">
                        </select>
                    </div>

и искренне я не знаю, как делать функцию, чтобы реализовывать фильтр, чтобы показывать результаты внутри отборного ранга

В этой функции я подбираю value отборного

function sendFilter(){
      var filterSend = "";
      switch(vm.filterSelected){

          case 'rango':
            filterSend = vm.rangoSelected.value;
          break;
          default:
            alert('no hecho');
          break;

      }
      vm.showLastMovements(filterSend);
  }

В которой с alert, меня достает хорошо value select.

если вы можете помогать мне или, по крайней мере, давать какой-то отпечаток, чтобы создавать вышеупомянутую функцию, чтобы потом делать вызов с case для того, чтобы они явились resgistros вышеупомянутого выбора, он вам был бы благодарен за это.

Большое спасибо

1
задан 12.04.2017, 09:18
0 ответов

Я не понимаю очень хорошо намерение твоего переключателя, но представляю, что это, чтобы знать, есть ли выбирать фильтр и применять или нет это. Для этого было бы достаточно простого if. Я объясняю тебе, как есть у меня один похожий смонтированный фильтр.

В select, у меня есть первый option, как 'не просачивание' с value НЕ, и после я помещаю оставшуюся часть выборов. В драйвере я инициализирую vm.rangoSelected = 'НЕ':

<select ng-model="vm.rangoSelected">
  <option value="NO">No filtrar</option>
  <option ng-repeat="ran in vm.rangos" value="{{ran.value}}">{{ran.name}}</option>
</select>

После, я перемещаю в функцию фильтра отборную стоимость. Твоя функция фильтра была бы должна делать что-то похожим на это:

function filtrar(lista, rango){
  var inicio = // la fecha - rango.
  var fin = // la fecha + rango.
  if(rango === 'NO') {
    return lista;
  } else {
    return lista.filter(function(elemento){ 
      return elemento.fecha >= inicio && elemento.fecha <= fin;
    });
  }
)

Чтобы работать с датами я рекомендую тебя moment.js с тем, который ты можешь складывать даты легко: moment().add(7, 'days'); или подтверждать, - ли дата внутри ранга: fecha.isBetween(inicio, fin);

1
ответ дан 03.12.2019, 17:38
  • 1
    У меня есть 5 фильтров, из-за числа reultados, enter 2 даты, этот ранга дат (15 дней, 1 неделя, 1 дни...) и поэтому у меня есть переключатель, который согласно тому, что выбирается, делает фильтр или другой. ища из-за Интернета уже encontré способ это делать и однажды сделанный концу вечера они говорят мне, что я должен делать это по-другому используя querys и хорошо, я думаю, что уже я считаю это сделанным, большое спасибо –  26.01.2017, 13:43