7
votes

Réglage des paramètres dynamiques dans l'URL avec un routeur d'interface utilisateur angulaire

J'utilise le système de requête qui permet à l'utilisateur de construire une requête à partir de la liste des champs dynamiques et je souhaite persister la requête dans URL.

Normalement, je ferais: P>

$state.go($state.current, {p1:'1', p2: '2', p3:'3', p4: '4', p5:'5'}, {location: true, inherit:true, notify:false})


0 commentaires

3 Réponses :


3
votes

Cela a fonctionné pour moi: xxx

et xxx


1 commentaires

Cela fonctionne sur la page utilisée, mais lorsque vous essayez de naviguer, vous pouvez rencontrer de manière intermittente un problème connu appelé «Bug de rechargement» (comme indiqué sur certaines des pages de problèmes GITUB de l'UI-Routeur) dans lesquelles certains des paramètres que vous avez Situé dans cet état $ State.Go est appliqué à l'état suivant que vous visitez ou que le contrôleur recharge inutilement ou d'autres problèmes.



2
votes

Il y a une très longue discussion de retour à 2013 sur une des Pages d'émission GitHub de l'UI . Jusqu'à présent, aucune réponse donnée n'a satisfait à tout le monde, et je suis l'une des personnes insatisfaites.

Jusqu'à présent, la meilleure solution de contournement consiste à utiliser uniquement les paramètres de requête (pas de paramètres de chemin URL) et ajoutez la reloadonarch: VRAI Option aux États Vous envisagez d'utiliser des paramètres de requête dynamiques sur (changer sans recharger la page). C'est discuté dans Un autre stackoverflow répond ici .

À partir du jour où j'écris ceci, il y a une branche d'UI angular-ui avec quelque chose appelé "Paramètres dynamiques" qui est maintenant 300 commits derrière le maître mais aurait pu résoudre le problème (mais il est maintenant assez loin derrière le maître que Je ne veux pas l'utiliser). Il existe également une version 1.0 à venir de l'UI-routeur mais je ne sais pas quand cela sera libéré. ​​


1 commentaires

Je ne me souviens pas de trouver une solution à ce problème. J'ai également changé dans un autre cadre d'une année après avoir écrit cette question, donc je ne l'étudie plus.



3
votes

Assurez-vous d'utiliser le dernier routeur UI 1.x - c'est important. Ensuite, dans votre itinéraire, utilisez la dynamique: true dans les paramètres. Cela empêchera le rafraîchissement. Utilisez l'UI-Sref comme vous le feriez normalement - n'utilisez aucun de ces éléments de notification / rechargement / emplacement, car il va casser les choses - dynamique s'occupe de la définition correctement en arrière-plan. Avec une valeur, vous pouvez définir une valeur par défaut et une courge enlève la barre oblique de fin de l'URL s'il est vide (réglé sur '' - pas null). xxx


2 commentaires

Merci pour la réponse mise à jour, mais la question est de savoir comment différencie-t-on maintenant entre les changements d'itinéraire causés par $ State.go (paramètres dynamiques) et quelqu'un qui revenait simplement en utilisant le bouton Back Backer?


Wow, était confronté à un problème similaire et c'était l'emplacement: "Remplacer" qui brise tout! Les variables dynamiques prennent soin de tout cela. Merci!