a.html
<p ui-view='index'></p>
b.html
<p ui-view='content'></p>
c.html
<p>content1</p>
d.html
<p>content2</p>
L'événement de liaison dans a.html déclenche le passage de la vue du contenu à c.html ou d.html
Comment configurer la configuration de $stateProvider
Comment basculer manuellement en js ?
Votre question manque de certaines informations contextuelles nécessaires, je ne peux donc me fier qu'à des spéculations ou à des suppositions pour la compléter
Le système de routage de n'importe quel framework SPA est le même : chaque route correspond au statut de l'application, et les changements de statut de l'application se reflètent dans les changements d'URL, à l'inverse, les changements d'URL entraîneront des changements dynamiques dans le système de routage Actualiser l'état de l'application.
Dans votre exemple, il n'y a qu'une seule entrée constante dans l'itinéraire,
ui-view='content'
, mais différentes vues (c.html
etd.html
) doivent y entrer dynamiquement, ce qui signifiec.html
etd.html
Pour correspondre aux différents états de l'application, le système de routage peut être mis à jour dynamiquement en conséquence.Supposons que votre exemple ressemble à ceci :
Quand
/posts/show/c
,ui-view='content'
affichec.html
Quand
/posts/show/d
,ui-view='content'
affiched.html
Nous pouvons donc le mapper sur ui-router :
state
estposts.show
fragment dynamique, c'est-à-dire la partie variable des URL, correspond au
state
dansurl
, je l'ai nommé:name
view
estcontent@posts.show
Cela suffit pour écrire la majeure partie du code :
La seule question qui reste est : comment mettre à jour
:name
lorsquetemplateUrl
change ?Comme mentionné précédemment, les modifications des URL entraîneront la mise à jour de l'état de l'application par le système de routage. Ces modifications sont enregistrées dans l'objet
$params
du système de routage. Nous pouvons utiliser cet objet pour extraire les parties modifiées et générer. le bontemplateUrl
🎜>. Ici, j'écris une fonction d'assistance pour ce faire :module ui-router,
templateUrl
reçoit non seulement des chaînes, mais aussi la valeur de retour des fonctions. Vous pouvez donc obtenir :Quand
/posts/show/c
,templateUrl
esttemplates/posts/c.html
Quand
/posts/show/d
,templateUrl
esttemplates/posts/d.html
En conséquence, le lien de navigation dans votre
index
est responsable de la commutation des modifications de/posts/show/:name
. Comment générer le lien correspondant au fragment dynamique se trouve dans la documentation de l'interface utilisateur.Je pense que les personnes ci-dessus rendent le jeu trop compliqué. Ne serait-il pas bien de simplement regarder un tutoriel d'interface utilisateur
https://scotch.io/tutorials/a...