J'utilise Vue avec vue-router. Pour les articles du produit dans une vue de liste, je voudrais générer des annotations JSON-LN avec l'attribut url
défini sur le chemin du produit vue détaillée.
Je sais que je peux obtenir le chemin de l'itinéraire actuel en utilisant this.$route.path
mais existe-t-il un moyen d’obtenir un chemin d’itinéraire distinct comme il serait rendu avec
<router-link :to={name: 'ProductDetail', params: {id: some_id, slug: some_slug}}></router-link>
injecter le chemin de l'itinéraire ailleurs?
Vous recherchez la méthode resolve
de l'instance de routeur :
Étant donné l'emplacement sous la même forme que celle utilisée dans
<router-link/>
, renvoie un objet avec les propriétés résolues suivantes:{ location: Location; route: Route; href: string; }
Dans votre cas, vous pouvez faire quelque chose comme ça pour obtenir l'url:
let props = this.$router.resolve({
name: 'ProductDetail',
params: { id: some_id, slug: some_slug },
});
return props.href;