vue.js - 在 Vue.JS 中加载(创建)页面时如何重新加载从服务器获取的数据
问题描述
页面加载时,从服务器获取一些数据并显示在此表上
<tr v-for="option in options">
<td>
<img :src="'/uploads/'+option.logo" class="img-thumbnail" width="130" height="90" />
</td>
<td>{{option.description}}</td>
<td v-if="option.homologated== false">
<button type="button" class="btn btn-success" v-on:click="homologate(option.idOption)">Homologate</button>
</td>
<td v-else>
<button type="button" class="btn btn-danger">Cancel</button>
</td>
</tr>
我正在使用这段代码来获取数据
var app = new Vue({
el: '#app',
data() {
return {
options:[]
}
},
created: function () {
this.list();
},
methods: {
list: function () {
axios.get('@Url.Action("GetOptions", new {id = ViewContext.RouteData.Values["id"] })')
.then(response => {
this.options = response.data
})
.catch(function (error) {
Swal.fire({
icon: 'error',
title: 'Erro',
text: 'Error'
})
})
},
homologate: function (id) {
var formData = new FormData();
formData.set('id', id);
axios.post('@Url.Action("Homologate")', formData)
.then(response => {
console.log(response);
})
.catch(error => { });
this.list();
}
},
})
问题是当我调用 this.list() 方法来刷新我的表时,什么也没有发生,我需要按 F5 重新加载。这可能是因为没有观察或计算方法吗?我是 Vue.JS 的新手,我尝试在手表上插入 list() 方法,但仍然没有成功。
解决方案
问题是我在哪里调用 list() 方法。
homologate: function (id) {
var formData = new FormData();
formData.set('id', id);
axios.post('@Url.Action("Homologate")', formData)
.then(response => {
//THIS IS WHERE I NEEDED TO CALL this.list();
})
.catch(error => { });
}
推荐阅读
- python - 椭圆拟合以确定旋转(Python)
- shader - UE4 - 为什么在着色器中 cosine() 似乎为自然数返回 1
- amazon-web-services - 如何在 Terraform 中导入现有的 AWS Glue 作业?
- reactjs - 如何使用样式组件在 Next.JS 中创建活动链接
- jupyter-notebook - 无法从“skimage.feature”导入名称“graycomatrix”
- c# - 在并行执行中对任务进行分组,以防止具有相同 groupingID 的消息同时执行
- ms-access - 在主窗体上填写组合框后如何在 Access 中更新子窗体
- flutter - Flutter 如何使用普通包名创建新项目?
- python - Python - 递归查找制作 ax 需要多少 y
- flutter - Flutter Dart - 提供者不工作。只是白屏