72 votes

Comment définir un paramètre de requête dans AngularJS sans effectuer de routage?

Mon Angulaire application permet à l'utilisateur de charger un élément, et quand cela arrive, j'aimerais définir une chaîne de requête qui contient l'élément d'Id, de sorte que si l'utilisateur actualise la page (ou l'envie d'en lien), l'URL est déjà défini (il y a déjà le code de chargement de l'élément si l'Id est présent dans $routeParams).

Comment puis-je mettre que paramètre de requête sans causer un itinéraire? Il y a d'autres choses sur la page qui va se réinitialiser (y compris un plugin qui va avoir à recharger l'ensemble de ses données) si une route qui se passe, il est donc important que la requête de modification des paramètres.

En bref, lorsque je charge article 123, tout ce que je veux arriver, c'est que l'URL change à partir de:

www.myurl.com/#/Items

pour:

www.myurl.com/#/Items?id=123

sans routage.

Quelle est la meilleure façon de le faire?

165voto

Stewie Points 20312

Dans votre configuration $ routeProvider , définissez reloadOnSearch sur false:

 $routeProvider
  .when('/items', {
    controller: 'ItemsCtrl',
    templateUrl: '/templates/items',
    reloadOnSearch: false
  },
  ...
);
 

et dans votre contrôleur, utilisez $location.search() pour définir le paramètre id :

 $location.search('id', 123);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X