Ich habe ein Problem mit dem Filtern verschachtelter Objekte. In Select wähle ich den Filterparameter (Objektwert) und in Eingabe gebe ich einen Text ein, der ihn im Objektschlüssel sucht.
Versucht, benutzerdefinierte Filter mit Rekursion für tiefe Suche zu schreiben, aber es funktioniert nicht. input
ist der Parameter für das Objekt in ng-repeat, param1
ist für selects ng-Modell und param2
ist für das ng-Modell der Eingabe.Angular: benutzerdefinierter Filter für rekursive Suche in verschachtelten Objekt
JS
.filter('personFilter', function($filter) {
return function(input, param1, param2) {
var output = {};
for (var prop in input) {
if (typeof input[prop] == 'object' || prop != param1 && input[prop] != param2) {
$filter('personFilter')(input[prop]);
} else {
output[key] = input[key];
}
}
return output;
}
Hier ist der Plunker: http://plnkr.co/edit/83lPNRWFy6wa9U2FkMfH?p=preview
Ich hoffe jemand mir einen Rat geben
wie Datenformat erscheint, ist nicht gültig. Sie sollten einen Fehler wie 'Uncaught SyntaxError: Unexpected token:' bekommen, weil das Format etwas wie '[{'node1': {node2: ''}}]' not '['node1': {...}]' sein kann –