首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在v-for内有v-for的无限循环

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

Stack Overflow用户
提问于 2018-09-13 10:36:13
回答 1查看 412关注 0票数 0

谁能帮我找出如何在循环中实现一个循环,以打印出人员和人员年假报告。

基本上我有这样的想法:

代码语言:javascript
复制
<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>

因此,这将迭代通过Firebase DB并获取所有用户,然后逐个循环每个用户,并使用.key查找用户离开,并在输出时循环所有离开。然后转到下一个用户,然后离开。

虽然这是工作,但它将继续无限循环,并在我的控制台说。

代码语言:javascript
复制
vue.esm.js?efeb:591 [Vue warn]: You may have an infinite update loop in a component render function.

有没有人可以解释一下,也许有一种更好的方法来做到这一点,而不是无限循环,或者是一个避免它不断循环的解决方案?

谢谢

编辑

过滤函数

代码语言:javascript
复制
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
})
},

EN

回答 1

Stack Overflow用户

发布于 2018-09-21 07:45:32

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52305873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档