0

Angular material documentation for md-autocomplete for tags(md-chips) uses a filter function given below-

    //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);
       };
     }

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

Can someone please explain these two functions ? In querySearch method, what does "self.vegetables.filter(createFilterFor(query)) : [];" mean?

("vegetables" is the array of all objects out of which suggestions will be given and query is the search text)

shiv_saz
  • 65
  • 6

1 Answers1

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

if the query is not empty , it's return the vegetables list but if query is empty it's return void

//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);
       };
     }

the function first lowercase the query string and check if the query is in the list

Dan M. CISSOKHO
  • 1,070
  • 1
  • 12
  • 27