Comment transmettre les paramètres d'URL dans le lien de routeur dans VueJS
P粉930448030
P粉930448030 2023-12-19 10:56:30
0
1
591

J'essaie d'envoyer une requête à '/trackers/:id/Update' ou '/trackers/:id/Delete' depuis la page Trackers dans VueJS, le problème est que mon identifiant est dans des données appelées éléments que je Je viens de Pour obtenir l'API et la stocker localement pour l'afficher, je dois obtenir {{item.trackerid}} dans l'URL cible, qui est "/trackers/:id/Delete". Je ne trouve pas de moyen. Quelqu'un peut-il me dire le bon chemin ?

TrackersView.vue :

<template>
    <h1>Hello {{name}}</h1>
    <h3>This is your Trackers page</h3>
    <table class="table table-striped">
  <thead>
    <th>Sno</th>
    <th>Tracker name</th>
    <th>Tracker Description</th>
    <th>Tracker settings</th>
    <th>Date Created</th>
    <th>Add tracker log</th>
    <th>Actions</th>
  </thead>
  <tbody>
<tr v-for="item,index in items" :key="index">
                <th>{{index}}</th>
                <th>{{item.trackername}}</th>
                <th>{{item.trackerdesc}}</th>
                <th>{{item.tracker_settings}}</th>
                <th>{{item.datecreated}}</th>
                <th><button class="btn btn-outline-dark">+</button></th>
                <th><button class="btn btn-outline-dark"><router-link :to="{ name: 'tupdate', params : {id : localStorage['id'] } }" style="text-decoration:none; color: black;">Update</router-link></button>
                </th>
                <th>  <button class="btn btn-outline-dark">  <router-link to="/trackers/{{item.trackerid}}/Delete" style="text-decoration:none; color: black;">Delete</router-link></button></th>
                
            </tr>
  </tbody>
</table>


<button class="btn btn-outline-dark" @click="createtracker">Click to add trackers</button>
</template>

<script>
import { useRouter } from 'vue-router';
import axios from 'axios';
export default {
Name: 'TrackersView',
mounted() {
    let id = localStorage['id'] 
    return{
        id,
    }
},
data() {
    return {
        name: localStorage.name,
        items : [],
        
    }
},
methods:{
  getTrackers(){
    const path = 'http://localhost:5000/trackers/'+ localStorage['id'] 
    axios.get(path)
    .then((res) => {
      this.items = res.data.tracker
  })
 
    .catch((err) => console.log(err.response))

    console.log(this.items);
  }
},
setup() {
  const router = useRouter();
  const createtracker = async () => {
    await  router.push({name: 'createtracker',params : {id : localStorage['id']}});
    };
    return{
        createtracker,
    }
},
created() {
  this.getTrackers();
}
}
</script>

<style scoped>
    body {
    background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
    background-size: 400% 400%;
    animation: gradient 15s ease infinite;
    height: 100vh;
  }
  
  @keyframes gradient {
    0% {
      background-position: 0% 50%;
    }
    50% {
      background-position: 100% 50%;
    }
    100% {
      background-position: 0% 50%;
    }
  }
</style>t

Le résultat final est le suivant :

Voici ce qu’il y a dans localStorage :

P粉930448030
P粉930448030

répondre à tous(1)
P粉106301763

La requête pour l'itinéraire actuel se trouve dans this.$route.query, si vous souhaitez la conserver dans la destination, vous pouvez transmettre l'intégralité de l'objet de requête à un autre itinéraire :

<router-link


:to="{ path: '/', query: $route.query }"
>
  Go There
</router-link>

Si vous souhaitez uniquement transmettre des paramètres de requête spécifiques :

<router-link
  :to="{ path: '/', query: { myQuery: $route.query.myQuery }}"
>
  Go There
</router-link>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal