Injecter $champ d'application dans le filtre (AngularJS)
Ce que je suis en train de faire:
Im en utilisant un ng-repeat directive sur un tableau associatif, je veux filtre. La construction de filtre angulaire n'est pas en train de travailler sur les tableaux associatifs/tables de hachage. À cause de cela, je suis en train d'écrire mon propre filtre (inspiré par http://angularjs.de/artikel/angularjs-ng-repeat; c'est en allemand, mais le code est ci-dessous le titre "Beispiel 2: Filtern von Hachages mittels eigenem Filtre" qui signifie "Exemple 2: Filtre de Hachages avec votre propre filtre").
La ng-repeat:
tr ng-repeat="(key, machine) in machines | customFilter | orderObjectBy:'name':false"
remarque: orderObjectBy est aussi un customFilter.
Le filtre:
toolApp.filter('customFilter', [function(){
return function(machines){
var result = {};
angular.forEach(machines, function(machine, key){
/*if(machine.name.contains(filter)){
result[key] = machine;
}*/
//if(machine.name.contains("a")){
result[key] = machine;
//}
});
return result;
};
}]);
Le filtre fonctionne avec une codé en dur "filtre-critérium". Mais je veux avoir une zone de texte au-dessus de la liste, dans laquelle l'utilisateur peut entrer le "filtre-critérium". Mon Problème est que je ne sais pas comment insérer cette valeur dans le filtre. Je ne trouve pas beaucoup sur Internet et ce que j'ai trouvé, n'a pas fonctionné pour moi.
Quelqu'un a une idée de comment insérer la valeur de l'oder peut-être une approche différente.
Énorme merci à l'avance pour chaque réponse! Si vous avez besoin de plus d'informations, laissez-moi savoir! J'ai essayé de le garder court :>.
Salutations de l'Allemagne
Vous devez vous connecter pour publier un commentaire.
vous pouvez avoir des paramètres de votre filtre personnalisé.
supposons que vous avez un champ de saisie:
et une ng-repeat comme la vôtre:
ensuite, vous pouvez accéder à ce paramètre dans votre filtre personnalisé:
note:
Faites attention que la myParam valeur est initialisée avec un "undefined" de la valeur. Vous devez définir une valeur par défaut dans le contrôleur ou le gérer dans le customFilter. Sinon, vous ne verrez que votre liste, après avoir commencé à taper.