簡體   English   中英

Axios Vue.js 表未反映響應數據

[英]Axios Vue.js table is not reflecting response data

我有一個 function 每當上傳文件時我都會調用它來刷新我保存文件的表。

response.data返回正確的數據,但我的表沒有反映它。 知道我可以做什么來強制更新我的表以顯示新條目嗎?

如果我刷新頁面,數據就會恢復正確。

function GetFileList(intID) {
    //$("#fileuploadstbl").empty();
         
    var ItemsVue = new Vue({
        el: '#fileUploadContent',
        data: {
            items: []
        },
        mounted: function () {
            var self = this;
    
            axios.get("getUploads.ashx")
                .then(response => {
                    self.items = response.data 
                }, function (err) {
                    console.log('error');
                    console.log(err.status);
                    console.log(err.response.status);
                })
                .catch(err => {
                    console.log('error');
                    console.log(err.status);
                });
        }
    });
    $("#fileUploadContent").show();
}

這就是我綁定<tr>的方式:

<tr 
    v-for="item in items" class="tddata" 
    v-bind:data-ID="item.ID" 
    v-bind:data-Uploadid="item.Uploadid"
>
    <td>{{item.Filename}}</td>
    <td 
        style="cursor: pointer;text-align:center;"  
        v-on:click="ViewFile(item.Filepath,item.Filename)"
    >
        View File
    </td>
    <td 
        style="cursor: pointer;text-align:center;"  
        v-on:click="DeleteFile(item.ID,item.guid,item.Filepath,item.Filename)"
    >
        View File
    </td>
    <td style="text-align:center;">{{item.UploadedBy}}</td>          
</tr>

它會根據您的情況自動更新。 也許你可以檢查你的 response.data 是否保存在你的“項目”中。 如果還是不行,也許可以嘗試使用forceupdate function

this.$forceUpdate();

這對我有用

//HTML
<tr v-for="user in users" :key="user.id" v-bind="users_model">


//In your method
axios.get('sample-domain..com').then(response => {
   this.users = response.data.data
   this.users_model++
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM