2017-02-22 1 views
0

Ich versuche, das AngularJS SDK von Loopback zu verwenden, aber ich habe keinen Weg gefunden, eine Anfrage mit mehreren Where-Klausel zu tun (und es gibt keine Beispiele in der Dokumentation).Loopback mehrere Where-Klausel Client-Seite

$scope.events = Professional.events({ 
     id: '1', 
     filter: { 
      where: { 
      EndDate: {gt: new Date("2017-05-20T00:00:00.000Z")} 
      } 
     } 
     }, 
    function(err) { 
     [...] 
    }); 

Dieses Beispiel funktioniert perfekt, aber ich möchte, dies zu tun:

$scope.events = Professional.events({ 
     id: '1', 
     filter: { 
      where: { 
      and: { 
       EndDate: {gt: new Date("2017-05-20T00:00:00.000Z")}, 
       EndDate: {it: new Date("2017-06-20T00:00:00.000Z")} 
      } 
      } 
     } 
     }, 
    function(err) { 
     [...] 
    }); 

Der Fehler im Terminal angezeigt

Error: The and operator has invalid clauses {"EndDate":{"it":"2017-06-20T00:00:00.000Z"}}: Value is not an array or object with sequential numeric indices 

Ein anderer Versuch:

$scope.events = Professional.events({ 
    id: '1', 
    filter: { 
     where: { 
     EndDate: {gt: new Date("2017-05-20T00:00:00.000Z")}, 
     EndDate: {it: new Date("2017-06-20T00:00:00.000Z")} 
     } 
    } 
    }, 
function(err) { 
    [...] 
}); 

Die genaue Derselbe Fehlercode wird angezeigt ayed. Irgendeine Idee?

EDIT: Diese Lösung funktioniert nicht

$scope.events = Professional.events({ 
     id: '1', 
     filter: { 
      where: { 
      and: [ 
       {EndDate: {gt: new Date("2017-05-20T00:00:00.000Z")} }, 
       {EndDate: {it: new Date("2017-06-20T00:00:00.000Z")} } 
      ] 

      } 
     } 
     } 
     , 
    function(err) { 
     [...] 
    }); 

Der Fehlercode (500 http)

Erreur non traitée pour la demande GET /api/Professionals/1/events?filter=%7B%22where%22:%7B%22and%22:%5B%7B%22EndDate%22:%7B%22gt%22:%222017-05-20T00:00:00.000Z%22%7D%7D,%7B%22EndDate%22:%7B%22it%22:%222017-06-20T00:00:00.000Z%22%7D%7D%5D%7D%7D : Error: Date non valide : [object Object] 

Antwort

1

Wenn Sie mehrere Bedingungen mit and zu vergleichen versuchen Sie einen Pass haben Array zu und wie folgt:

where: 
{ 
    and: [ 
     {title: 'My title'}, 
     {content: 'Hello'} 
    ] 
} 

Der obige Code bedeutet, dass Sie mir alle Daten geben, wo der Titel "Mein Titel" ist und der Inhalt "Hallo" ist.

In Ihrem Fall wäre es:

where: { 
    and: [ 
     { EndDate: {gt: new Date("2017-05-20T00:00:00.000Z")} }, 
     { EndDate: {it: new Date("2017-06-20T00:00:00.000Z")} } 
    ] 
} 
+0

Vielen Dank für Ihre Antwort. Es funktioniert nicht wirklich (ich habe meinen ersten Post bearbeitet). Oder vielleicht hat Ihre Lösung das erste Problem gelöst, aber ein neues Problem wurde erstellt. – ThomasF62

+0

dieser Fehler ist nicht über die Where-Klausel, Sie haben ein Problem mit Daten jetzt, glückliche Untersuchung – Yaser

+0

Vielen Dank für Ihre Zeit – ThomasF62