Comment utiliser Angular $ location pour définir mon nouvel emplacement d'URL en changeant dynamiquement ses paramètres de valeur-clé?
Disons que j'ai une bonne extrémité qui accepte une plage de facettes pour les données de la requête. Voici quelques exemples:
example.com/search?type=Doctor&location=Boston,MA&radius=2
example.com/search?type=Facility&location=Wayne,NJ&radius=3&gender=f
example.com/search?type=Doctor&location=Patterson,NJ
Mon module accepte la requête de l'objet pour effectuer la recherche:
console.log(query);
{
type:'Doctor',
location:'Boston,MA',
radius:'2'
}
$scope.getSearch = function(query){
var search = $search.search(query);
search.getResults(function(results){
$scope.results = results;
});
}
Ces facettes sont transmises par le biais d'un modèle local dans un formulaire web:
<input type="text" ng-model="query.location"/>
<input type="text" ng-model="query.radius"/>
<button type="button" ng-click="getSearch(query)">Search</button>
Dans la réussite de rappel de la getResults
fonction, je vais essayer d'ajouter les paramètres de requête de l'URL comme dans les exemples ci-dessus:
$scope.getSearch = function(query){
var search = $search.search(query);
search.getResults(function(results){
$scope.results = results;
search.appendQueryToURL(query);
});
}
Comment puis-je ajouter des paramètres d'URL dynamiquement dans AngularJS?
source d'informationauteur Dan Kanze
Vous devez vous connecter pour publier un commentaire.
À l'aide de $lieu
Pour les Non AngularJS applications:
Vous pouvez utiliser history.js pour ajouter des paramètres dynamiquement à l'url.
diviser ensuite l'url pour récupérer les paramètres et passer à angulaires:
Je suggère history.js comme c'est à dire jusqu'ver9 na pas de support de l'histoire de poussée d'objet de l'état, si vous allez utiliser IE10+ ou google chrome, utiliser l'historique d'état de l'objet à mettre à jour l'url.
Espérons que cela aide 🙂
Pour l'exemple ci-dessus, le chemin() de votre emplacement $serait
et la racine est
De revenir à sa question, il n'a pas demandé de mettre à jour l'emplacement avec le nouveau chemin d'accès, il a demandé de mettre à jour l'emplacement avec de nouvelles paires clé-valeur de requête dynamique!
Donc pour cela, il est juste de tous les jours jQuery $x(newX)!
ou
C'est tout jQuery !!
Si il veut changer le chemin d'accès à partir de la recherche de quelque chose d'autre, il peut le faire:
En fait, au lieu d'utiliser $lieu d'appeler vos données-point de terminaison de service, de façon normale de faire, c'est
et dans getDataService() faire un
avec votre serviceUrl être
après l'analyse (à l'aide de sprintf)