代码之家  ›  专栏  ›  技术社区  ›  SamohtVII

在v-for内有v-for的无限循环

  •  0
  • SamohtVII  · 技术社区  · 6 年前

    有人能帮我弄清楚如何在一个循环中实现一个循环,打印出一份关于员工和员工年假的报告。

    <div v-for="user_list in user_list_filtered()">
      <div class="user_heading"><h2>{{ user_list.first_name }}</h2></div>
      <div class="report_content" v-for="user_leave in user_leave_filtered(user_list['.key'])">
        <div class="first_date_content">
            {{ user_leave.start_time | formatDate }}
        </div>
        <div class="days_taken_content">
            {{ checkLSL(user_leave.hours, user_leave.type, false) }}
        </div>
      </div>
      <div class="leave_content">
        <div class="total_leave_title">
            Total Leave Taken
        </div>
        <div class="total_hours">
            {{ getTotalLeave() }}
        </div>
      </div>
    </div>
    

    当它工作时,它将继续无限循环,并在我的控制台中显示。

    vue.esm.js?efeb:591 [Vue warn]: You may have an infinite update loop in a component render function.
    

    谢谢

    编辑

    过滤器功能

    user_leave_filtered(userPassed) {
    var self = this
    return this.userLeave.filter(function(i) {
        if (i.users_id === userPassed &&
            ((i.start_time >= self.getUnix(self.firstDate) && i.start_time <= self.getUnix(self.lastDate)) ||
            (self.firstDate === null || self.firstDate === '' || self.lastDate === null || self.lastDate === ''))) {
            return true
        } else {
            return false
        }
    })
    },
    user_list_filtered() {
    var self = this
    
    return this.userList.filter(function(i) {
    
        var passed = false
    
        if (self.userToShow === i['.key'] || self.userToShow === 'All') {
            // Track whether to filter out this leave or not
            self.userLeave.forEach(function(element) {
                if (element.users_id === i['.key']) {
                    passed = true
                }
            })
        }
    
        return passed
    })
    },
    

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  0
  •   MomasVII    6 年前

    原因是我用一个函数(checkLSL())计算循环中的一些总数。我有一些关于如何修复的信息,似乎工作得很好。 谢谢