مرحبا.
واجهت مشكلة غريبة للغاية حول مربعات الاختيار.
<template lang="html">
<div>
<div v-for="(item,key) in test">
<input type="checkbox" v-model="item.active">
</div>
</div>
</template>
<script>
window.T = [{
active: false
}, {
active: false
}];
export default {
data() {
return {
test: T
}
},
methods: {}
}
</script>
أولاً ، قمت بكتابة T[0].active=true
في وحدة التحكم ، وتم تحديد مربع الاختيار الأول بشكل طبيعي ، ولكن عندما قمت بتحديث المتصفح ، قمت بتحديد مربع الاختيار الأول يدويًا ، ثم قمت بكتابة T[0].active=false
. في هذا الوقت ، لن يتم إلغاء تحديد مربع الاختيار الأول ، ولكن لا يزال من الممكن تعيين المربع الثاني بشكل طبيعي (صواب / خطأ) من خلال وحدة التحكم.
حاول 2.1.0 و 2.1.8 ، النتائج متشابهة ، إصدار الكروم 54.0.2824.2
لتصيير عناصر dom ذات الحالة (المدخلات ، وما إلى ذلك) باستخدام v-for ، تحتاج إلى إضافة السمة الرئيسية للتأكد من صحة الحالة.
https://cn.vuejs.org/v2/guide/list.html#key
هذا الوضع الافتراضي صالح ، ولكنه ينطبق فقط على إخراج عرض القائمة الذي لا يعتمد على حالة المكون الفرعي أو حالة DOM المؤقتة (على سبيل المثال: قيم إدخال النموذج).
fnlctrl شكرًا لك على ردك ، لكن ربما لم أصفه بوضوح. لقد أضفت المفتاح كما قلت ، والنتيجة هي نفسها. هناك دليل آخر على أن ما قلته هو أنه في chrome 55.0.2883.95 تحت Mac ، بغض النظر عما إذا كان المفتاح مضافًا أم لا ، يمكن ضبطه بشكل طبيعي.
لا يمكن التكاثر. https://jsfiddle.net/1b7cux60/
fnlctrl انقر فوق أول واحد قبل 3 ثوانٍ لجعله الحالة المحددة
https://jsfiddle.net/1b7cux60/5/
استمر في اختباره ، هناك بالفعل مشكلة
https://jsfiddle.net/Lu3o86wt/
ستكون حالة خانة الاختيار للنقرة الأخيرة خاطئة
سيبقى <input>
الأخير الذي تم النقر عليه في الحالة الخطأ
كروم
حافة
fnlctrl هذا ليس خطأ في الواقع. يحدث ذلك لأن مربع الاختيار لا يزال مركزًا ولا نقوم بتحديثه عن قصد. على الأقل من المنطقي بالنسبة لمدخلات النص ، قد نرغب في إعادة النظر في المدخلات الأخرى
تم إصلاح ذلك عبر # 4639
التعليق الأكثر فائدة
تم إصلاح ذلك عبر # 4639