Kaedah Vuejs ajax memanggil kaedah lain pada komponen
P粉316423089
P粉316423089 2024-02-21 12:57:36
0
2
456

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粉316423089
P粉316423089

membalas semua(2)
P粉281089485

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粉491421413

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",
        });
    },
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan