在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ vue easytable axios 數(shù)據(jù)賦值問題

vue easytable axios 數(shù)據(jù)賦值問題

我測試下來目前懷疑是javascript 異步執(zhí)行的原因 。懷疑就是axios 還沒執(zhí)行完,賦值就已經發(fā)生了。
我先自己測試嘗試解決。

1.我用VUE的 easytable 想加個 footer 的數(shù)據(jù)匯總,不知道怎樣可以獲取到table 數(shù)據(jù)。
easytable 說明:
http://doc.huangsw.com/vue-ea...

2.代碼:
tableData: 是VUE,data中定義的一個空數(shù)組。
.
下面這個函數(shù)是定義在VUE,Methods,用來求和計算的:
setFooterData () {

axios.get('/asset/hosts').then(res => { this.tableData = res.data })
console.log('========\n', this.tableData)
let Cost111 = this.tableData.map(item => {
return item.CostByMonth
})
...(后面的省去)}

3.問題:
我沒有想明白的問題是:為什么axios.get() 之后那一句 console.log 打印出來的 this.tableData 是空的數(shù)組。
導致我后面Cost111 獲取不到數(shù)據(jù)。
axios.get函數(shù)里面的 this.tableData 數(shù)據(jù)實際是獲取到的。只是setFooterData() 這個函數(shù)里面我不知道如何獲取保存這個axios得到的響應數(shù)據(jù)tableData。

4.不知道講問題明白了沒,小弟愚笨,非程序員出身,都是自學搗鼓的,也沒有人可以交流,路走的很苦,希望有人指點一二。

回答
編輯回答
撥弦

解決了,的確是因為js異步執(zhí)行的原因,原來的寫法,axios.get的響應返回前,后面的程序已經被執(zhí)行了。
改成下面的可以實現(xiàn)功能。 目前沒想明白的是為社么這個 this.setFoorerData()需要在this.request()后面再寫一遍,否則不出現(xiàn)footer.

created () {
    axios.get('/asset/hosts').then(res => { this.tableData = res.data; this.setFooterData() })
    this.request()
    this.setFooterData()
    //
}
2017年6月12日 12:08