简体   繁体   English

如何在 vuejs 中的 @click 处显示每个对象数据?

[英]How to display each objects data at @click in vuejs?

What I am trying to achieve with this code is to display each days class schedule when clicked on.我试图用这段代码实现的是在点击时显示每天 class 时间表。 So for example when "Monday" button is clicked, Monday's schedule will be displayed.因此,例如,当单击“星期一”按钮时,将显示星期一的日程安排。 In my code the entire weeks schedule will be displayed.在我的代码中,将显示整个星期的时间表。 How can I fix this?我怎样才能解决这个问题?

<div id="app">
 <div v-for="day in days" :key="day.name" class="days">
  <button @click="showSchedule"> {{day.name}} </button>
 </div>
 <div v-for="day in days" :key="day.name">
  <ul v-if="time">
   <li v-for="n in 4">
    {{day.schedule[n].time}}
   </li>
  </ul> 
 </div>
</div>

Here the showSchedule method toggles the schedule data property so that schedules are displayed conditionally.这里的 showSchedule 方法切换了调度数据属性,以便有条件地显示调度。

new Vue({
 el: '#app',
 data: {
  schedule: false,
  days: [
    {
    name: "Mon",
    date: "10",
    lessons: "4 lessons",
    grade: "Grade 9",
    schedule: [
      {
        time: "9:00",
        subject: "Biology",
        mode: "Lecture"
      },
      {
        time: "10:00",
        subject: "Chemisty",
        mode: "Tutorial"
      },
      {
        time: "11:00",
        subject: "Physics",
        mode: "Test"
      },
      {
        time: "13:00",
        subject: "Biology",
        mode: "Lecture"
      }
    ]
  },
  {
    name: "Tue",
    date: "11",
    lessons: "3 lessons",
    grade: "Grade 9 ",
    schedule: [
      {
        time: "9:00",
        subject: "Biology",
        mode: "Lecture"
      },
      {
        time: "10:00",
        subject: "Chemisty",
        mode: "Tutorial"
      },
      {
        time: "11:00",
        subject: "Physics",
        mode: "Test"
      },
      {
        time: "13:00",
        subject: "Biology",
        mode: "Lecture"
      }
    ]
  },
  {
    name: "Wed",
    date: "12",
    lessons: "5 lessons",
    grade: "Grade 8 ",
    schedule: [
      {
        time: "9:00",
        subject: "Biology",
        mode: "Lecture"
      },
      {
        time: "10:00",
        subject: "Chemisty",
        mode: "Tutorial"
      },
      {
        time: "11:00",
        subject: "Physics",
        mode: "Test"
      },
      {
        time: "13:00",
        subject: "Biology",
        mode: "Lecture"
      }
    ]
  },
  

],

},
     methods: {
      showSchedule() {
       this.schedule = !this.schedule;
     }
}

 })

 new Vue({ el: '#app', data: { schedule: false, days: [ { name: "Mon", date: "10", lessons: "4 lessons", grade: "Grade 9", show: false, schedule: [ { time: "9:00", subject: "Biology", mode: "Lecture" }, { time: "10:00", subject: "Chemisty", mode: "Tutorial" }, { time: "11:00", subject: "Physics", mode: "Test" }, { time: "13:00", subject: "Biology", mode: "Lecture" } ] }, { name: "Tue", date: "11", lessons: "3 lessons", grade: "Grade 9 ", show: false, schedule: [ { time: "9:00", subject: "Biology", mode: "Lecture" }, { time: "10:00", subject: "Chemisty", mode: "Tutorial" }, { time: "11:00", subject: "Physics", mode: "Test" }, { time: "13:00", subject: "Biology", mode: "Lecture" } ] }, { name: "Wed", date: "12", lessons: "5 lessons", grade: "Grade 8 ", show: false, schedule: [ { time: "9:00", subject: "Biology", mode: "Lecture" }, { time: "10:00", subject: "Chemisty", mode: "Tutorial" }, { time: "11:00", subject: "Physics", mode: "Test" }, { time: "13:00", subject: "Biology", mode: "Lecture" } ] }, ], } })
 <div id="app"> <div v-for="day in days":key="day.name" class="days"> <button @click="day.show =.day.show"> {{day.name}} </button> <div v-if="day.show"> {{ day:schedule }} </div> </div> </div> <script src="https.//cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM