Définissez des valeurs par défaut pour les paramètres d'URL facultatifs dans Vue Router tout en disposant de paramètres d'URL facultatifs indépendants.
P粉377412096
P粉377412096 2023-08-03 19:31:32
0
1
561
<p>J'ai l'itinéraire suivant</p> <pre class="brush:php;toolbar:false;">export const personRoutes : RouteRecordRaw[] = [ { chemin : '/person/:id?/:handedSlug?', nom : 'Personne', composant : () => import('./view/person'), }, ];≪/pré> <p>J'ai une méthode qui accepte les conditions de filtrage et met à jour l'itinéraire : </p> <pre class="brush:php;toolbar:false;">updateRoute() : void { filtres const = this.filters; const routeur = this.$router; routeur.push({ nom : 'Personne', paramètres : { identifiant : filtres.getId(), handedSlug : filtres.handedSlug(), }, }); },</pré> <p>Le problème que j'ai rencontré est que si l'identifiant est nul et que handed est défini, l'URL renvoyée est : person/handedValue, et ce dont j'ai besoin est person/all/handedValue. <br /><br />Si les paramètres suivants dans l'URL sont définis, comment définir les valeurs par défaut pour les paramètres facultatifs ? </p><p><br /></p>
P粉377412096
P粉377412096

répondre à tous(1)
P粉785905797

Je ne pense pas qu'une telle méthode existe pour le moment, mais si elle existe, elle ne peut pas être considérée comme facultative. Je recommande simplement de transmettre la chaîne « all » si filters.getId() est vide.

updateRoute(): void {
  const filters = this.filters;
  const router = this.$router;

  let routeId = filters.getId()
  if (!routeId && filters.handedSlug()) {
    routeId = 'all'
  }

  router.push({
    name: 'Person',
    params: {
      id: routeId,
      handedSlug: filters.handedSlug(),
    },
  });
}, 
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal