之前項目中踩過的坑分享一下,項目框架當時選用的vue,因為對ajax用法比較熟悉所以在vue中繼續使用ajax沒有使用axios,下面說遇到的問題以及解決辦法:
vue中ajax中this默認指向對象是vue本身,當然你如果想在全局使用就要先把this作用域提升到全局
let that = this;
按正常來講這時已經用這個that在ajax中取值傳給vue視圖了。
但是你會發現在vue中打印that是undefined,在ajax中this指向的是ajax本身。
解決方式:
methods: { dataList() { var _self = this console.log(_self);//此處_self指向vue對象 $.ajax({ type: "post", url:url, async: true, data: {}, dataType: "json", success: function(result) { _self.tableData = result;//這里的即為vue對象中tableData鍵值 console.log(_self.tableData)
} }) } }
打印結果即為后端接口數據json對象。
最后一步
data() { return { tableData: this.tableData, } }
分享為例,並不是完整代碼,有問題可以相互交流QAQ