Wie erstellt man den folgenden Filter mit AngularJS?AngularJS-Filterliste basierend auf Array-Eigenschaften
Hier ist ein visual diagram explaining the question. Ich habe versucht, dies für eine Weile herauszufinden, und würde wirklich etwas Hilfe zu schätzen wissen.
Ich habe eine Liste von Unternehmen:
$scope.companies = [
{
id:"company_01",
ratings: [ 5, 5, 5, 5, 0, 5, 4, 4, 1, 3, 0, 0 ]
},
{
id:"company_02",
ratings: [ 5, 4, 5, 4, 0, 5, 4, 4, 1, 3, 0, 0 ]
}
...
];
wo jeder company
eine Eigenschaft ratings
genannt hat - eine Reihe von numerischen Werten (1-5), die Noten für einen bestimmten Satz von issues
darstellen:
$scope.issues = [
{
label:'Carbon Footprint',
selected: true,
value: 3
},
...
{
label:'Consumer Health',
selected: false,
value: null
},
...
{
label:'Employee Satisfaction',
selected: true,
value: 5
},
...
];
Die Indizes $scope.companies[i].ratings
entsprechen den Indizes $scope.issues
.
Jede Ausgabe hat:
- eine
selected
Eigenschaft, eine boolean von einer UI Checkbox getoggelt - eine
value
Eigenschaft, eine Zahl (1-5) durch einen UI Schieber eingestellt
Ich möchte $scope.companies
basierend darauf filtern, ob company.ratings[i] >= issue[i].value
für jeden ausgewählten issue[i]
. Wenn ein issue
nicht ausgewählt ist, sollte es den Filter nicht beeinflussen.
Eine verwandte Frage ist, was der beste Weg, auf Änderungen auf $scope.issues
zu achten wäre. z.B. wenn ein Benutzer ein Problem auswählt/abweist oder einen Schieberegler anpasst.
Vielen Dank!
vielen dank für die lösung! Hier ist ein Link zu einem Video davon in Aktion;) https://drive.google.com/file/d/0B9vFYPxUYlHYeXF0bGtSWFZKejA/view –