2016-05-26 2 views
0

Hallo alles, ich möchte Elemente (von und bis zum Datum) für enquiry_received_date mit der Datumsbereichsfunktion in Meanjs App filtern. Ich habe versucht dann viele Möglichkeiten, aber nicht in der Lage, die Lösung zu bekommen, wenn einer die Lösung kennt mich bitte helfen ..... my plunkFiltern von AngularJS-Objekten anhand des Start- und Enddatums mithilfe des Datumsbereichs?

Controller:

.filter('dateRange', function() { 
    return function(records, from, to) { 
     return records.filter(function(record) { 
      return record.Date >= from && record.Date <= to; 
     }); 
    } 
}) 

Html:

<td> {{data.buyer_name}}</td> 
    <td> {{data.ex_india_date}}</td> 
     <td> {{data.quantity}}</td> 
     <td> {{data.enquiry_received_date}}</td> 

My plunk

+0

Ist dies Ihr Problem lösen? http://stackoverflow.com/questions/25515431/ng-repeat-filtering-data-by-date-range – Brian

Antwort

0

Zunächst einmal, Ihre Aufzeichnungen se em kein Feld wie Date zu haben, so kann Ihre Filterung nicht funktionieren. Ich sehe, dass Sie enquiry_received_date anzeigen, also denke ich, dass dies das Feld ist, das Sie zum Filtern verwenden möchten. Dieses Feld enthält ein Datum im Format YYYY-MM-DD, daher müssen Sie es bis heute analysieren. Ich empfehle, MomentJS dafür zu verwenden - diese Bibliothek macht das Arbeiten mit Datumsobjekten wirklich einfach.

Hier ist der Code, der verwendet werden kann, um dies zu erreichen: Habe ich nur noch einen Verweis auf moment.js

-Controller

.filter('dateRange', function() { 
     return function(records, from, to) { 
      return records.filter(function(record) { 
       return !moment(record.enquiry_received_date, 'YYYY-MM-DD').isBefore(moment(from)) 
       && !moment(record.enquiry_received_date, 'YYYY-MM-DD').isAfter(moment(to)); 
      }); 
     } 

Ansicht

im Blick.

Arbeits Plunker

http://plnkr.co/edit/gEPtj9yk1AxgEZiNeqY0?p=preview


bearbeiten

Wenn Sie möchten, dass Ihre Filter mehr wiederverwendbar machen, Sie könnten zum Beispiel einen anderen Parameter mit dem Namen hinzufügen des Feldes, das zum Filtern verwendet werden soll:

-Controller

.filter('dateRange', function() { 
     return function(records, dateKey, from, to) { 
      return records.filter(function(record) { 
       return !moment(record[dateKey], 'YYYY-MM-DD').isBefore(moment(from)) 
       && !moment(record[dateKey], 'YYYY-MM-DD').isAfter(moment(to)); 
      }); 
     } 

Ansicht

<tr ng-repeat="data in record | dateRange : 'enquiry_received_date' : from : to"> 
    <td> {{data.buyer_name}}</td> 
    <td> {{data.ex_india_date}}</td> 
    <td> {{data.quantity}}</td> 
    <td> {{data.enquiry_received_date}}</td> 
</tr> 

Plunker

http://plnkr.co/edit/pczikllV7vBTVoFfcpvK?p=preview

+0

Kein Problem, ich bin froh, dass es dir geholfen hat :-) – PJDev

Verwandte Themen