لنفترض أن لدي مكونًا بسيطًا لا يحتوي إلا على طريقة mounted
تقوم بما يلي:
this.myValue = 'a value'
$(this.$el).parent('form').submit()
يبدو html المكون الخاص بي كما يلي:
<form action="http://…">
<input type="text" :value="myValue">
</form>
كما ترى أنا أستخدم jQuery لإرسال النموذج وإذا حدث كل من تعيين القيمة وإرسال النموذج في نفس الوظيفة ، فسيتم تقديم __بيانات فارغة__. يمكنني التغلب على هذا باستخدام مهلة بدون تأخير ، لكن هذا بالطبع ليس مثاليًا.
setTimeout(() => {
$(this.$el).parent('form').submit()
})
يحدث هذا أيضًا عندما لا يكون في الطريقة المثبتة ، ولكن على سبيل المثال on blur out
، لذلك لا علاقة له بتحميل الصفحة أو التأخير. نفس الشيء ينطبق على :value
مقابل v-model
.
لا أعرف الكثير من العناصر الداخلية لـ Vue أو JS ، لكنني أفترض أنه لم يكن قادرًا على تعيين القيم بعد. باستخدام المهلة ، يتم الإرسال في العلامة التالية.
اعتقدت أنه لا توجد طريقة لحل المشكلة.
في هذه الحالة ، أكتب يدويًا قيمة المعلمة لـ ajax.
هل تم نشر هذه القضية قبل ذلك الحين؟ لا يمكن العثور على أي شيء.
حسنًا ، في حالتي ، أريد فقط إرسال النموذج تلقائيًا بما في ذلك تحديث الصفحة ، ولا أريد (ولا يمكنني) إرساله عبر Ajax. إذا لم يكن هناك حل ، فربما يكون من الجيد ذكره في المستندات؟
استخدم vm. $ nextTick
this.myValue = 'a value'
this.$nextTick(function () {
$(this.$el).parent('form').submit()
})
التعليق الأكثر فائدة
استخدم vm. $ nextTick