web-dev-qa-db-fra.com

Obtenir l'itinéraire par nom et paramètres pour vue-router

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?

11
Till Kolter

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;
25
thanksd