2016-07-22 7 views
0

Angular Material Dokumentation für md-Autovervollständigung für Tags (md-Chips) verwendet einen Funktionsfilter gegeben unten-Suchabfragefunktion von md-Autovervollständigung

//Search for vegetables. 
    function querySearch (query) { 
     var results = query ? self.vegetables.filter(createFilterFor(query)) : []; 
     return results; 
    } 

    //Create filter function for a query string 
    function createFilterFor(query) { 
     var lowercaseQuery = angular.lowercase(query); 
     return function filterFn(vegetable) { 
      return (vegetable._lowername.indexOf(lowercaseQuery) === 0) || 
      (vegetable._lowertype.indexOf(lowercaseQuery) === 0); 
     }; 
    } 

Quelle: https://material.angularjs.org/latest/demo/chips

Kann jemand bitte erklären, diese zwei Funktionen? In der Methode querySearch, was macht "self.vegetables.filter (createFilterFor (query)): [];" bedeuten?

(„Gemüse“ ist die Anordnung aller Objekte, aus denen zu geben, Vorschläge werden und Abfrage der Suchtext)

Antwort

0
function querySearch (query) { 
     var results = query ? self.vegetables.filter(createFilterFor(query)) : []; 
     return results; 
    } 

, wenn die Abfrage nicht leer ist, dann ist es das Gemüse Liste zurück, aber wenn Abfrage leer ist, es ist leer Rückkehr

//Create filter function for a query string 
    function createFilterFor(query) { 
     var lowercaseQuery = angular.lowercase(query); 
     return function filterFn(vegetable) { 
      return (vegetable._lowername.indexOf(lowercaseQuery) === 0) || 
      (vegetable._lowertype.indexOf(lowercaseQuery) === 0); 
     }; 
    } 

die Funktion zuerst die Query-String in Kleinbuchstaben und überprüfen, ob die Abfrage in der Liste