首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Vue:未重新呈现异步数据

Vue:未重新呈现异步数据
EN

Stack Overflow用户
提问于 2018-09-07 19:16:44
回答 1查看 158关注 0票数 0

我对来自Angular的Vue.js完全陌生。我尝试加载asyncData并像这样显示它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
    <section>
        <h1 v-for="employee in employees" v-bind:key="employee.name">    {{employee.name}}</h1>
    </section>
</template>

<script>
import { db } from '../firebase.js'
import { Employee } from "../models/employee.js";
import { Entry } from "../models/entry.model.js";

export default {
    data: function() {
        return { employees: [] };
    },
    created: function() {
        this.loadEmployees();
    },
    methods: {

        loadEmployees: function() {
            db.collection('Employees').get().then(
                (snapshots) => {
                    for (const doc of snapshots.docs) {
                        const e = new Employee(doc.data().name, doc.data().worktimes);
                        e.id = doc.id
                        this.employees.push(e);
                    }
                }
            )
        },
    }
}
</script>

这对我来说似乎是一件简单的事情,但是一旦加载,v-for就不会显示数据。关于vue和异步数据有什么我不知道的地方需要知道吗?我真的找不到任何有用的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-07 19:22:07

您在每次迭代for (const doc of snapshots.docs)时都会覆盖整个员工数组。将employees的局部声明移出循环,并在末尾重新赋值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  loadEmployees: function() {
    db
      .collection('Employees')
      .get()
      .then(snapshots => {
        const employees = [];
        for (const doc of snapshots.docs) {
          const e = new Employee(doc.data().name, doc.data().worktimes);
          e.id = doc.id
          employees.push(e);

        }
        this.employees = employees;

        /*
         * As an alternative, you could just use .map()
         * which creates the new array, pushes to it,
         * and assigns all in one compact function
         */
        this.employees = snapshots.docs.map(doc => {
          const {
            name,
            worktimes
          } = doc.data();
          const e = new Employee(name, worktimes);
          e.id = doc.id;
        });
      })
  }
}

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

https://stackoverflow.com/questions/52228467

复制
相关文章
jq 判断是否为空,为空隐藏指定 div
<style>.mydiv{ width:300px; height:300px; background:red;}</style> <div class="mydiv">     <div class="content">          这是一句话,删除的话会让 mydiv display:none;          </div> </div> <script src="https://lib.baomitu.com/jquery/3.4.1/jquery.min.js"></script> <sc
Savalone
2020/02/11
7.1K0
接口测试如何在post请求中传递文件
2.找到body这个选项,输入文件对应的参数名,在然后把参数名后面的text选择为file。
sik1
2022/06/21
3.4K0
如何在 Python 中隐藏和加密密码?
有多种 Python 模块用于隐藏用户输入的密码,其中一个是**maskpass()模块。在 Python 中,借助maskpass()模块和base64()**模块,我们可以在输入时使用星号(*) 隐藏用户的密码,然后借助 base64() 模块可以对其进行加密。
海拥
2022/04/13
2.1K0
Python 空数组用法
            result.append("Yes")  #直接append
py3study
2020/01/13
2K0
js判断空数组
使用Array.isArray()方法和Array.length属性:可以通过Array.isArray()方法检查数组是否实际是一个数组。如果作为参数传递的对象是数组,则此方法返回true。它还检查数组是否未定义或为空。
IT工作者
2022/01/15
22K0
如何在iOS 7.0中隐藏状态栏
使用Cordova做了一个小项目,在原来iOS6的时候显示挺好,升级为iOS7后,每次App启动后都会显示状态栏,而且状态栏和App的标题栏重叠在一起,非常难看,因此需要将状态栏隐藏起来。
大江小浪
2018/07/24
1.2K0
如何在iOS 7.0中隐藏状态栏
JavaScript 判断空对象、空数组的方法
从表格中,我们可以看出想要判断是不是null, undefined , "", 0,都比较容易, 非操作 和 比较操作 都能实现。就是{}, []比较顽固,两种方法都无效。
celineWong7
2020/11/05
29.9K0
如何在Java和Swift中避免空引用异常?
您最近在代码中遇到过NullPointerException(空指针异常)吗? 如果没有,那你一定是一个很细心的程序员。在Java应用程序中最常见的异常类型之一就是NullPointerExcepti
程序你好
2018/08/01
2.7K0
如何在Java和Swift中避免空引用异常?
Angular2 中的指令
组件:一种带有模板的指令;使用component来装饰组件类 属性指令:改变元素的外观或行为,如NgClass,NgStyle;使用Directive来装饰指令类 结构指令:向DOM中添加或删除元素,如NgIf,NgFor;使用Directive来装饰指令类
用户1437675
2018/08/20
1.7K0
【点滴】如何在JavaScript中清空数组?
在使用 JavaScript 数组时,一个很常见的问题是如何清空数组并删除其所有元素。有几种方法可以解决这个问题,每种方法都各有利弊。
疯狂的技术宅
2021/03/16
3.2K0
Mongdb非空数组查询
db.idap_zl.find({array:{elemMatch:{ne:null}}})
Laikee
2022/04/25
4.7K0
js中关于假值和空数组的总结
1、“假值”总共只有6个: false,undefined,null,0,""(空字符串),NaN 除此之外的所有值,都是“真值”,即在逻辑判断中可以当true来使用
IT人一直在路上
2019/09/18
5.1K0
js中关于假值和空数组的总结
js判断元素在不在数组中_js判断数组是否为空
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180608.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
15.9K0
如何在Bash中获取数组长度?
在Bash脚本中,数组是一种常用的数据结构,用于存储多个值。在处理数组时,经常需要知道数组的长度,即数组中元素的个数。本文将详细介绍如何在Bash中获取数组长度的方法,以帮助您更好地处理数组操作。
网络技术联盟站
2023/06/17
1.3K0
如何在Bash中获取数组长度?
如何在你的文章中添加隐藏的版权信息
现在有4个中文汉字: 我是青南,首先介绍Python的 ord函数,它可以查询Unicode字符对应的Unicode码
青南
2019/03/18
1.6K0
如何在你的文章中添加隐藏的版权信息
如何在Java中避免equals方法的隐藏陷阱(一)
常见的等价方法陷阱 java.lang.Object 类定义了equals这个方法,它的子类可以通过重载来覆盖它。不幸的是,在面向对象中写出正确的equals方法是非常困难的。事实上,在研究了大量的Java代码后,2007 paper的作者得出了如下的一个结论: 几乎所有的equals方法的实现都是错误的! 这个问题是因为等价是和很多其他的事物相关联。例如其中之一,一个的类型C的错误等价方法可能意味着你无法将这个类型C的对象可信赖的放入到容器中。比如说,你有两个元素elem1和elem2他们都是类型C的对象
java达人
2018/01/31
1.8K0
如何在Java中避免equals方法的隐藏陷阱(二)
陷阱3:建立在会变化字段上的equals定义 让我们在Point类做一个非常微小的变化 public class Point { private int x; private int y; public Point(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public int getY() {
java达人
2018/01/31
1.7K0
字符数组初始化为空
第(1)(2)(5)种方式是整体清0了整个缓冲区,效率较低; 如果数组的size非常大,那么这三种方式将会造成很大的开销。
全栈程序员站长
2022/09/09
1.3K0
点击加载更多

相似问题

在自制公式中创建别名

11

在公式标记中创建别名时出错

11

在计算中使用SQL别名创建其他别名

40

在SQL Server中创建别名

32

使用公式创建SQL Server表

11
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文