cari

Rumah  >  Soal Jawab  >  teks badan

Kaedah Vuejs ajax memanggil kaedah lain pada komponen

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粉316423089P粉316423089319 hari yang lalu483

membalas semua(2)saya akan balas

  • P粉281089485

    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

    balas
    0
  • P粉491421413

    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",
            });
        },
    }

    balas
    0
  • Batalbalas