Vue: Pengikatan nilai formulir tidak memperbarui cukup cepat

Dibuat pada 20 Des 2016  ·  3Komentar  ·  Sumber: vuejs/vue

Katakanlah saya memiliki komponen sederhana dengan metode mounted yang melakukan hal berikut:

this.myValue = 'a value'

$(this.$el).parent('form').submit()

html komponen saya terlihat seperti ini:

<form action="http://…">
    <input type="text" :value="myValue">
</form>

Seperti yang Anda lihat, saya menggunakan jQuery untuk mengirimkan formulir dan jika keduanya menetapkan nilai dan mengirimkan formulir terjadi dalam fungsi yang sama, __data kosong dikirimkan__. Saya dapat mengatasi ini dengan menggunakan batas waktu tanpa penundaan, tetapi tentu saja itu tidak ideal.

setTimeout(() => {
    $(this.$el).parent('form').submit()
})

Ini juga terjadi ketika tidak ada dalam metode yang dipasang, tetapi misalnya on blur out , jadi itu tidak ada hubungannya dengan pemuatan halaman atau penundaan. Hal yang sama berlaku untuk :value versus v-model .

Saya tidak tahu banyak tentang internal Vue atau JS, tetapi saya kira itu karena belum dapat menetapkan nilainya. Menggunakan batas waktu, pengiriman terjadi pada centang berikutnya.

Komentar yang paling membantu

Gunakan vm.$nextTick

this.myValue = 'a value'

this.$nextTick(function () {
  $(this.$el).parent('form').submit()
})

Semua 3 komentar

Saya pikir tidak ada cara untuk menyelesaikan masalah.

Dalam situasi ini, saya secara manual menulis nilai param untuk ajax.

Apakah masalah ini telah diposting sebelumnya? Tidak dapat menemukan apa pun.

Nah, dalam kasus saya, saya hanya ingin mengirimkan formulir secara otomatis termasuk penyegaran halaman, tidak ingin (dan tidak bisa) mengirimkannya melalui Ajax. Jika tidak ada solusi, mungkin disebutkan dalam dokumen akan menyenangkan untuk dimiliki?

Gunakan vm.$nextTick

this.myValue = 'a value'

this.$nextTick(function () {
  $(this.$el).parent('form').submit()
})
Apakah halaman ini membantu?
0 / 5 - 0 peringkat