Ich habe viele andere Beiträge zu diesem Thema gelesen und sie alle neigen dazu, einzigartig komplizierte Lösungen zu beschreiben. Ich möchte nur eine Liste von Elementen basierend auf den Kontrollkästchen, auf die ich klicke, filtern (ich brauche ein UND-Filter & in der Lage, alle Elemente zu sehen, bis ein Kontrollkästchen angeklickt wird).Filtern von ng-Wiederholungsliste mit Kontrollkästchen und AngularJS
Das scheint mit AngularJS ein Kinderspiel zu sein, aber ich bekomme es einfach nicht. Wie kann ich meinen Code ändern, damit die Filterung funktioniert?
Hier ist meine unvollständig JSFiddle: http://jsfiddle.net/mromrell/qx3cD/1/
Aktualisiert Fiddle hier: http://jsfiddle.net/mromrell/qx3cD/7/
Vielen Dank im Voraus!
<div ng-controller="MyCtrl">
<li class="no-decoration" ng-repeat="tech in technologyArray">
<label>
<input type="checkbox" ng-model="strict" />{{tech}}</label>
</li>
<hr>
<div ng-repeat="portfolioItem in portfolioArray | filter:strict" class="ng-scope">
<h3>{{portfolioItem.name}}</h3>
</div>
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.technologyArray = ["HTML", "CSS", "Django", "Python", "AngularJS", "Javascript", "3rd party Payment API", "3rd party Libraries", "Jquery", "RestfulAPI", "AAAAAHH", "NodeJS", "Mongo", "Express", "Jade", "Wordpress", "MySQL", "Joomla", "Magento", "Jira"]
$scope.portfolioArray = [{
"id": "1",
"name": "Storm Pig",
"technology": ["HTML", "CSS", "Django", "Python", "AngularJS", "Javascript", "3rd party Payment API", "3rd party Libraries"]
}, {
"id": "2",
"name": "Placer",
"technology": ["HTML", "CSS", "Django", "Python", "AngularJS", "Javascript", "Jquery"]
}, {
"id": "3",
"name": "Custom Proposal App",
"technology": ["RestfulAPI", "AAAAAHH", "AngularJS", "HTML", "CSS", "Javascript", "NodeJS", "Mongo", "Express", "Jade"]
}, {
"id": "4",
"name": "21 Zero",
"technology": ["HTML", "CSS", "Wordpress", "MySQL"]
}, {
"id": "5",
"name": "Detour Journal",
"technology": ["HTML", "CSS", "Joomla", "MySQL"]
}, {
"id": "6",
"name": "Dex Custom Websites",
"technology": ["HTML", "CSS", "Wordpress", "MySQL", "Magento", "Jira"]
}, {
"id": "7",
"name": "Conversion Jump",
"technology": ["HTML", "CSS", "Joomla", "MySQL"]
}, {
"id": "8",
"name": "The Canyons Pass",
"technology": ["HTML", "CSS", "Joomla", "MySQL"]
}]
}
Das ist Funktionen Großartig. Meine einzige Frage wäre, wie bekomme ich es, um alle Elemente zu zeigen, bis ein Kontrollkästchen aktiviert ist. Und als "UND" -Filter agieren (wenn also drei Technologien angeklickt werden, werden nur die Elemente angezeigt, die alle drei Technologien enthalten). Ich habe meine Fiedel basierend auf deinen Vorschlägen aktualisiert: http://jsfiddle.net/mromrell/qx3cD/7/ –
Das ist perfekt! Genau das habe ich mir erhofft und es ergibt Sinn. Ich denke, dass Sie gerade das einfachste Beispiel dafür erstellt haben, das ich aus mehr als 10 anderen Beispielen gesehen habe. Vielen Dank!! –
Ich habe die vorgeschlagene Lösung über jsfiddle überprüft. Es gibt mir "ReferenceError: t ist nicht definiert" -Fehler. können Sie bitte helfen. –