Filtern, indem Sie mehrere Kontrollkästchen in AngularJS
erste mal, dass ich gepostet habe eine Frage hier, also entschuldige mich im Voraus, wenn ich gegen eine Stack-Overflow-Etikette! 🙂
Bin ich mit ein paar AngularJS zum ersten mal in Reihenfolge zu erstellen ein proof-of-concept für meinen Chef. Es ist eine grundlegende Autovermietung listings app, mit einer Liste der Resultate in der main-Spalte, und ein filter-Bedienfeld unten auf der Seite. Ich habe geschafft, in die die Ergebnisse aus einem JSON-Objekt, und wenden Sie eine einfache filter, wie unten;
<article data-ng-repeat="result in results | filter:search" class="result">
<h3>{{result.carType.name}}, £{{result.price.value}}</h3>
<img class="car-type" alt="{{result.carType.name}}" src="{{result.carType.image}}" />
<ul class="result-features">
<li>{{result.carDetails.hireDuration}} day hire</li>
<li data-ng-show="result.carDetails.airCon">Air conditioning</li>
<li data-ng-show="result.carDetails.unlimitedMileage">Unlimited Mileage</li>
<li data-ng-show="result.carDetails.theftProtection">Theft Protection</li>
</ul>
</article>
Filter
<fieldset>
Doors:
<select data-ng-model="search.carDetails">
<option value="">All</option>
<option value="2">2</option>
<option value="4">4</option>
</select>
</fieldset>
...eine Sache, die ich noch nicht in der Lage zu arbeiten, obwohl, wie eine Gruppe von Kontrollkästchen, um einen filter anzuwenden, für die sagen, 'Fahrzeug', die würde haben Optionen wie 'mini', 'compact', 'Familie' und so weiter -, und der Benutzer wäre in der Lage zu filtern, durch ein oder mehrere Optionen gleichzeitig auswählen. Ich weiß, ich 'ng-model' und vielleicht 'ng-change', ich weiß nur nicht, wie Sie es anwenden, um eine Gruppe von Checkboxen...?
Update: ich habe eine plunker so können Sie sehen, wo ich stehe:
http://plnkr.co/edit/lNJNYagMC2rszbSOF95k?p=preview
InformationsquelleAutor ParkerDigital | 2013-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde binden Sie alle die Kontrollkästchen, um ein Objekt sagen:
app.js
index.html
Und erstellen Sie eine benutzerdefinierte filter-Funktion, die zurückgibt, ob das Objekt enthält alle (ich nehme an, das ist, was Sie wollen) der geprüften Optionen.
app.js
Dann können Sie es hinzufügen, um Ihre Vorlage wie diese:
index.html
Sorry für die Verspätung, ich war gestern. Sie sollten in der Lage sein, um die Iteration über alle cartypes im array und überprüfen Sie die Zeichenfolge enthält den Schlüssel für alle Schlüssel, die Karte zu wahren.
Alternativ könnten Sie wandeln den string in eine richtige Liste nach Erhalt der Daten. Mit der http-Dienst können Sie diese über einen Erfolgs-callback (siehe docs.angularjs.org/api/ng.$http) mit einem resource-Objekt (das ist im Grunde ein einfacher (vielleicht zu einfach) rest-wrapper.) es kann getan werden mit dem $ - dann-Methode (docs.angularjs.org/api/ngResource.$resource). So müssen Sie nur sorgen über die Schnur einmal und arbeiten mit einer netten Liste aus.
OK, danke nochmal für Eure Hilfe 🙂
Du bist herzlich willkommen.
InformationsquelleAutor martijnve
Habe ich implementiert diese Lösung wie diese:
und in der Ansicht ich habe bestanden:
InformationsquelleAutor Leon