2017-07-13 1 views
1
  1. J'ai fait une simple fonctionnalité complète automatique sur la recherche de texte. Il y a deux fonctions: querySearch (searchText) et homeresults (item). La fonction querySearch récupère correctement les résultats et il n'y a pas de problème. Une fois qu'un résultat est sélectionné par l'utilisateur, il appelle la fonction homeresults. Cette fonction fonctionne bien pour la première fois, mais ne fonctionne pas après cela, sauf si je retourne à la page d'accueil. Ainsi, une fois qu'un utilisateur est sur la page de résultats, il ne peut plus utiliser la barre de recherche s'il ne revient pas à la page d'accueil. Il n'y a pas d'erreurs Voici mon extrait de code:
  2. HTMLmd-autocomplete ne fonctionne pas après une fois

    <form ng-submit="$event.preventDefault()"> 
    <md-autocomplete md-selected-item="selectedItem" md-search-text="searchText" md-items="item in querySearch(searchText)" md-item-text="item.title" md-delay="400" md-min-length="2" md-floating-label="Search for any Query"> 
        <div layout-align="start center"> 
         <span md-highlight-text="searchText" ng-click="homeresult(item)">{{item.title}}</span> 
        </div> 
        <md-not-found>No matches found </md-not-found> 
    </md-autocomplete> 
    

  3. Javascript

    $scope.querySearch = function(search) { 
    var key = $scope.searchText; 
    console.log('keyword searched by user is ' + key); 
    return $http.get('/api/searchresult?title=' + key) 
        .then(function(response) { 
         return response.data 
        }); 
    }; 
    $scope.homeresult = function(item) { 
    console.log(item); 
    $timeout(function() { 
        item.title = item.title.replace(/ /g, '-'); 
        $location.url('/results').search({ 
         "title": item.title 
        }) 
        }, 50); 
    }; 
    

Répondre

0

Dans le homeresult(), le code redirigeant vers/résultats . Ainsi, au lieu de la redirection, si vous affichez les résultats sur la même page où md-autocomplete est défini, cela fonctionnera. Vous pouvez ajouter une simple vérification pour masquer les résultats jusqu'à ce que nous obtenions une réponse de $ http.