Saya sedang membangunkan apl yang boleh digunakan untuk membuat tugasan dan memasukkannya ke dalam senarai untuk menjejakinya dengan cekap. Saya telah mencipta senarai dan tugasan dalam senarai.
Saya cuba memberikan semua tugasan yang tergolong dalam senarai dalam senarai. Walau bagaimanapun, apabila saya menulis kod vue untuk ini, saya menghadapi masalah. Daripada memberikan tugasan yang hanya tergolong dalam senarai itu, kod saya menjana semua tugas dalam pangkalan data. Bolehkah seseorang membantu saya mencari cara yang betul untuk memberikan tugasan yang berada dalam senarai tertentu sahaja?
DashboardView.vue
<template> <div class="dashboard"> <Navbar class="navbar__dash" /> <h1 class="dashboard__welcome">Welcome {{ name }}</h1> <div class="listview"> <div class="no__lists" v-if="len_list === 0"> <h2 class="no_lists">There are No lists here tap to add</h2> </div> <div class="has__lists" v-else> <div class="all__lists" v-for="(item, index) in items" :key="index"> <div class="list"> <div class="title"> <div class="title__options"> <h1 class="list_name">{{ item[0].list_name }}</h1> <Dropdown /> <!-- V-menu --> <!--menu ends--> </div> </div> <div class="body"> <div class="no_tasks" v-if="item[0].no_of_tasks === 0"> <h3>There are no tasks added yet</h3> <router-link class="createList" :to="`/createTask/${id}/${item[0].list_id}`" > <fa class="list_plus" icon="fa-solid fa-plus" /> </router-link> </div> <div class="has_tasks" v-else> <h4>Here are your tasks</h4> <div class="tasks" v-for="(item, index) in items" :key="index"> <div class="tasksforthis" v-for="(task, index1) in item[1]" :key="index1" > <div class="filtered__tasks" v-if:="`{{ item[0].list_id }} == {{ task.list_id }}`" ></div> </div> </div> <router-link class="createList" :to="`/createTask/${id}/${item[0].list_id}`" > <fa class="list_plus" icon="fa-solid fa-plus" /> </router-link> </div> </div> <div class="footer"> Number of Completed tasks: {{ item[0].no_completed }}/{{ item[0].no_of_tasks }} </div> </div> </div> </div> <router-link :to="`/createList/${id}`"> <fa class="plus__icon" icon="fa-solid fa-plus" /> </router-link> </div> </div> </template> <script> import axios from 'axios'; import Dropdown from '@/components/DropdownList.vue'; import Navbar from '../components/NavBar.vue'; export default { name: 'DashboardView', data() { return { name: localStorage['name'], len_list: 0, items: [], id: localStorage['id'], }; }, methods: { getTrackers() { const path = 'http://localhost:5000/dashboard/' + localStorage['id']; axios .get(path) .then((res) => { this.items = res.data.list; this.len_list = res.data.list[0][0]['len_list']; console.log(res.data.list); for (let i = 0; i < res.data.list.length; i++) { console.log(res.data.list[i][1]); for (let j = 0; j < res.data.list[i][1].length; j++) { if ( res.data.list[i][1][j]['list_id'] == res.data.list[i][0]['list_id'] ) { console.log(res.data.list[i][1][j]['title']); console.log(res.data.list[i][0]['list_id']); } } } }) .catch((err) => { console.log(err); }); console.log(this.items); }, }, components: { Navbar, Dropdown, }, created() { this.getTrackers(); }, }; </script>
Saya menerima data dalam papan pemuka melalui format JSON. Contoh data boleh jadi:
Kod saya pada masa ini kelihatan seperti ini:
Tetapi saya mahu tunggakan mengandungi tugas GO dan Amaterasu, Heisenberg hanya perlu menunjukkan tugas GO, Baharu dan AK dsb. I.e. saya hanya mahu senarai memberikan tugasan yang mengandunginya sahaja. Ia akan sangat membantu saya jika seseorang boleh memberitahu saya cara untuk menyampaikannya dengan betul.
Ralat muncul dalam kod ini
Gelung v-for pertama melalui setiap item anda (anda sudah melakukan ini menggunakan v-for di atas dengan class="all__lists" pada div untuk menunjukkan kad senarai anda), gelung v-for kedua Pergi melalui setiap projek tugasan.
Alih keluar v-for pertama seperti yang ditunjukkan di bawah