2016-04-04 4 views
2

Ich habe verschiedene Objekte wie im folgenden Codebeispiel. Ich habe einige Checkboxen, die nach Bierbrauer, Stil, Aroma und Land filtern. Es wird nur gefiltert, wenn es im Array eine Eigenschaft gibt.Angularjs - So filtern Sie Objekte nach mehreren Werten in ihren Eigenschaften

Was ist die beste Lösung, um den Filter basierend auf allen Elementen im Array arbeiten zu lassen? Ich überprüfte einige andere Fragen und konnte nichts zusammenhängendes finden. Es wird großartig sein, wenn jemand von euch mir helfen könnte.

Danke.

Probe des Codes hier: http://pastie.org/10787362

Antwort

1

Sie filter Methode der Javascript Array() Objekt verwenden könnte.
Zum Beispiel:

$scope.filteredNames = $scope.names.filter(function(element) { 
    return 
    'brewer1' in element.brewers && 
    'aroma1' in element.aromas 
    ; 
}); 

$scope.filteredNames all names mit 'brewer1' Wert in brewers Eigenschaft AND 'aroma1' Wert in aromas Eigenschaft enthalten soll ...

+0

auf jeden Fall sollten Sie versuchen, Ihre pastie zu vereinfachen, nur halten die Mindestmenge von Daten und Code, um Menschen zu helfen Ihnen helfen ... – MarcoS

+1

Immer noch zu viel Code und Daten. Sie können es besser machen ... :-) – MarcoS

+0

um klarer zu sein: Das Problem tritt auf, wenn die Eigenschaft der Biere-Objekte mehrere Werte in ihrem Array hat –