Heim > Fragen und Antworten > Hauptteil
Ich versuche, von der Tracker-Seite in VueJS eine Anfrage an „/trackers/:id/Update“ oder „/trackers/:id/Delete“ zu senden. Das Problem besteht darin, dass sich meine ID in Daten namens „items“ befindet, die ich habe Ich bekomme von Um die API zu erhalten und sie zur Anzeige lokal zu speichern, muss ich {{item.trackerid}} in der Ziel-URL abrufen, die „/trackers/:id/Delete“ ist. Ich kann keinen Weg finden. Kann mir jemand den richtigen Weg sagen?
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
Das Endergebnis ist folgendes:
Das ist, was in localStorage ist:
P粉1063017632023-12-20 00:53:22
当前路线的查询位于 this.$route.query 中,如果您想将其保留在目的地中,您可以将整个查询对象传递到另一个路线:
<router-link :to="{ path: '/', query: $route.query }" > Go There </router-link>
如果您只想传递特定的查询参数:
<router-link :to="{ path: '/', query: { myQuery: $route.query.myQuery }}" > Go There </router-link>