【问题标题】:How to reload fetched data from server when page loads (created) in Vue.JS在 Vue.JS 中加载(创建)页面时如何重新加载从服务器获取的数据
【发布时间】:2020-09-25 05:45:54
【问题描述】:

页面加载时,从服务器获取一些数据并显示在此表上

                            <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() 方法,但仍然没有成功。

【问题讨论】:

    标签: vue.js asp.net-core


    【解决方案1】:

    问题是我在哪里调用 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 => { });
    
        }
    

    【讨论】:

      猜你喜欢
      • 2013-05-19
      • 2020-02-10
      • 1970-01-01
      • 2019-03-04
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 2021-12-07
      相关资源
      最近更新 更多