لدي مربع تحرير وسرد مع معالج الأحداث on-change
. يتم استدعاء معالج الأحداث فقط عندما أقوم بمسح التحديد ، وليس تغيير التحديد. يحدث ذلك في الإصدار 4.2.6 عند الاستخدام في Polymer 2.
<vaadin-combo-box
theme="small"
hidden="[[_hideEnvironmentSwitch]]"
label="Change Environment"
on-change="_changeEnvironment"
items="[[_environments]]"
value="{{_selectedEnvironment}}">
</vaadin-combo-box>
_changeEnvironment() {
debugger
if (this._selectedEnvironment) {
// some logic
}
this._toggleEnvironmentSelector();
}
يمكن إعادة إنتاج هذا في https://cdn.vaadin.com/vaadin-combo-box/4.2.6/demo/#combo -box-basic-demos عن طريق تعيين مستمع للتغيير في أي من مربعات التحرير والسرد. على سبيل المثال ، حدد واحدًا في المفتش وقم بتشغيل $0.addEventListener('change', console.log);
ثم حاول تغيير القيمة.
في الواقع ، يبدو أن هذا يمثل مشكلة فقط في الحالة التي تحدد فيها عنصرًا بالنقر فوق العناصر الموجودة في القائمة المنسدلة. لا يزال يتم تشغيل حدث التغيير بشكل طبيعي إذا حددت عنصرًا عبر التنقل باستخدام لوحة المفاتيح أو عن طريق كتابة مطابقة تامة ثم إلغاء التركيز أو الضغط على Enter.
يمكن أن تؤكد أن هذا هو الانحدار في v4.2.6.
إذا جربت الشيء نفسه في https://cdn.vaadin.com/vaadin-combo-box/4.2.5/demo/#combo -box-basic-demos ، فسيتم تشغيل الحدث بشكل طبيعي أيضًا عند تحديد العنصر بالنقر فوق عليه.
تم تقديم هذا الانحدار بواسطة # 785. يعمل بشكل جيد على الالتزام السابق قبل ذلك.
هذا الإصلاح متوفر الآن في master
وسيكون جزءًا من إصدار التصحيح التالي (على الأرجح v4.2.7) والذي من المحتمل أن يتم إصداره اليوم.
الإصلاح الآن في v4.2.7 .
التعليق الأكثر فائدة
هذا الإصلاح متوفر الآن في
master
وسيكون جزءًا من إصدار التصحيح التالي (على الأرجح v4.2.7) والذي من المحتمل أن يتم إصداره اليوم.