vue.js - 数据未显示在 console.log 中,但在模板中呈现良好
问题描述
我有一个 Vue 组件,我在其中进行 axois 调用以获取所有员工数据,将其存储在数组中,并将其显示在表格中。这工作得很好。
然而,我感到困惑的行为可以在下面的 getEmployees() 方法中看到,其中我有 console.log(this.employees);
当我检查控制台时,那里返回的对象是空白的并且没有任何员工数据,即使在模板中迭代时相同的数据对象正在显示所有员工数据。
看一下代码:
<template>
<b-table striped hover :items="employees"></b-table>
</template>
<script>
export default {
data() {
return {
employees: []
}
},
methods: {
getEmployees() {
axios.get('/api/employees')
.then(response => this.employees = response.data)
console.log(this.employees);
}
},
created() {
this.getEmployees()
}
}
</script>
我在那里做 console.log 的原因是因为我想遍历该数据并将该数组中的所有薪水数据格式化为货币格式(即千位后的逗号、货币符号等)
有任何想法吗?
谢谢。
解决方案
您为 this.employees 赋值的范围在 promise 的 .then() 方法内。尝试扩展您的箭头函数,然后在 .then() 方法中放置 console.log() 调用。
<template>
<b-table striped hover :items="employees"></b-table>
</template>
<script>
export default {
data() {
return {
employees: []
}
},
methods: {
getEmployees() {
axios.get('/api/employees')
.then((response) => {
this.employees = response.data;
console.log(this.employees);
}
)
}
},
created() {
this.getEmployees()
}
}
</script>
在 .then() 之后,您应该进行其余的更改。
推荐阅读
- android - 应用程序在前台使用 Firebase 时不显示通知
- fuseki - 如何将推理机添加到 fuseki 服务器?
- system-verilog - 使用 uvm_factory 获取派生类成员的句柄
- java - Spring Boot 应用程序的 Azure 发布管道表示它没有要发布的工件
- reactjs - 如何在有状态组件的反应路由器 5.1.2 中使用 history.push('path')?
- angular - 如何使用工具提示自定义类。[ngx-bootstrap]
- azure-container-instances - GPU 未在基于 GPU 的 Azure 容器实例中使用
- mysql - 在 MySQL (Azure) 上查询 Information_Schema 耗时过长
- sql - 尝试从一个表中检查另一个表中的数据
- javascript - Rxjs / Reactive Programming / redux observable 中的全局变量使用