cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana berbilang komponen berkongsi data yang dikembalikan oleh ajax

Dapatkan komponen bandar

city: {
        template: '#city_template',
        data: function () {
            return {
                cityData: cityData,//城市数据
                selectedOptions:[24,81],//被选中的城市
                list:[],
            }
        },
        mounted: function () {
                this.getCity()
        },
        methods: {
            getCity: function () {
                var self = this
                $.ajax({
                    url:'test.json',
                    success:function (res) {
                        self.$set(self.$data, 'cityData', res)
                    }
                })
            }
        }
    },

Sesuatu halaman mungkin mempunyai berbilang komponen sedemikian. Dalam kes ini, berbilang permintaan ajax akan dibuat. Sebenarnya, adakah terdapat cara untuk meminta data tak segerak sekali, dan kemudian menggunakan salinan yang sama untuk berbilang komponen tersebut ? Saya cuba mentakrifkan ajax secara luaran dan memberikannya kepada cityData, jadi data tidak boleh dikemas kini secara langsung

某草草某草草2751 hari yang lalu601

membalas semua(5)saya akan balas

  • PHP中文网

    PHP中文网2017-05-19 10:18:17

    test.json ialah fail milik anda Anda boleh menukarnya kepada format fail .js, dan kemudian menukarnya secara langsung kepada pembolehubah:{} bukan? Yang modular juga boleh didapati.

    balas
    0
  • ringa_lee

    ringa_lee2017-05-19 10:18:17

    Lihat komponen bandar anda, city.data().cityData ialah set hasil yang anda mahukan

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:18:17

    1. Urus dengan Vuex

    2. Kekalkan nilai ini pada komponen induk biasa, hantarkan kepada komponen anak melalui prop dan komponen anak memberitahu komponen induk ajax melalui $emit

    balas
    0
  • 某草草

    某草草2017-05-19 10:18:17

    Akhir sekali, kami menggunakan komponen tak segerak

    Vue.component(ele,function (resolve, reject) {
                    getCity().then(function (data) {
                        resolve(comInherit.extend(obj[ele]));
                    }).catch(function (error) {
                        alert(error)
                    })
                });

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:18:17

    Untuk berkongsi data antara berbilang komponen, anda boleh menggunakan vuex atau menentukan sendiri yang global

    balas
    0
  • Batalbalas