url - por - ¿Cómo puedo establecer un parámetro de consulta en AngularJS sin hacer una ruta?
router-outlet (1)
Mi aplicación Angular permite al usuario cargar un artículo, y cuando eso suceda, me gustaría establecer una cadena de consulta que contenga el Id. Del elemento para que, si el usuario actualiza la página (o desea vincularlo), la URL ya esté disponible. set (ya hay un código en su lugar que carga el elemento si el Id está presente en $ routeParams).
¿Cómo puedo establecer ese parámetro de consulta sin causar una ruta? Hay otras cosas en la página que se restablecerán (incluido un complemento que tendrá que volver a cargar todos sus datos) si ocurre una ruta, por lo que es importante que solo cambie el parámetro de consulta.
En resumen, cuando cargo el elemento 123, todo lo que quiero que suceda es que la URL cambie de:
www.myurl.com/#/Items
a:
www.myurl.com/#/Items?id=123
sin ningún enrutamiento.
¿Cuál es la mejor manera de hacer esto?
En su configuración de $routeProvider , establezca reloadOnSearch
en falso:
$routeProvider
.when(''/items'', {
controller: ''ItemsCtrl'',
templateUrl: ''/templates/items'',
reloadOnSearch: false
},
...
);
y en su controlador, use $location.search()
para establecer el id
param:
$location.search(''id'', 123);