Mon Angular application permet à l'utilisateur de charger un élément. Si cela se produit, j'aimerais définir une chaîne de requête contenant l'ID de l'élément. Ainsi, si l'utilisateur actualise la page (ou souhaite le modifier), son lien), l’URL est déjà définie (il existe déjà un code qui charge l’élément si l’Id est présent dans $ routeParams).
Comment définir ce paramètre de requête sans provoquer de route? Il y a d'autres éléments sur la page qui seront réinitialisés (y compris un plug-in qui devra recharger toutes ses données) si un itinéraire se produit, il est donc important que seul le paramètre de requête change.
En bref, lorsque je charge l'élément 123, tout ce que je veux, c'est que l'URL change de:
www.myurl.com/#/Items
à:
www.myurl.com/#/Items?id=123
sans aucun acheminement.
Quelle est la meilleure façon de faire cela?
Dans votre $ routeProvider , configurez 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);