Rumah > Soal Jawab > teks badan
Bagaimana untuk memanggil kaedah lain dalam jquery ajax?
methods : { calert(type,msg="",error=""){ console.log("call me"); }, getData(){ $.ajax({ type: "GET", success: function(data){ // error calert not found calert(true,"","asd"); }, error: function (error) { // also error calert not found this.calert(false,"",error); }, complete: function(){ }, url: "/test", }); }, }
Saya dah cuba guna this.calert
tapi tak berkesan, masih ralat
P粉2810894852024-02-22 11:46:37
Dengan cara saya menemui penyelesaiannya, nampak agak sukar untuk menggunakan ini
methods : { calert(type,msg="",error=""){ console.log("call me"); }, getData(){ let vm = this; $.ajax({ type: "GET", success: function(data){ // error calert not found vm.calert(true,"","asd"); }, error: function (error) { // also error calert not found vm.calert(false,"",error); }, complete: function(){ }, url: "/test", }); }, }
Saya menyimpan this
ke dalam pembolehubah dan kemudian menggunakan pembolehubah itu untuk memanggil kaedah lain.
Adakah sesiapa mempunyai penyelesaian yang lebih baik daripada ini?
Terima kasih
P粉4914214132024-02-22 11:36:54
Anda hanya perlu mengemas kini kod anda untuk menggunakan fungsi anak panah seperti berikut:
methods : { calert(type,msg="",error=""){ console.log("call me"); }, getData(){ $.ajax({ type: "GET", success: (data) => { this.calert(true,"","asd"); }, error: (error) => { this.calert(false,"",error); }, complete: (){ }, url: "/test", }); }, }
Sebagai alternatif, simpan rujukan setempat kepada kaedah, contohnya:
methods : { calert(type,msg="",error=""){ console.log("call me"); }, getData(){ const { calert } = this; $.ajax({ type: "GET", success: function(data){ // error calert not found calert(true,"","asd"); }, error: function (error) { // also error calert not found calert(false,"",error); }, complete: function(){ }, url: "/test", }); }, }