Vue: مرة واحدة لا تسير على ما يرام مع .self

تم إنشاؤها على ٢ فبراير ٢٠١٧  ·  6تعليقات  ·  مصدر: vuejs/vue

ضع في اعتبارك العنصر التالي:

<div @click.self.once="eat">Eat <span>me</span></div>

إذا نقرنا على كلمة "أكل" ، فكل شيء يعمل كما هو متوقع. تم إطلاق الحدث مرة واحدة ونحن سعداء.

ولكن إذا نقرنا على "أنا" ، وهي عقدة فرعية ، ثم نقرنا على "أكل" ، فلن يتم إطلاق الحدث أبدًا! يبدو أن .once سهل للغاية عند الحكم على حدث ما على أنه تم إطلاقه.

أعتقد أن .once يجب أن يضع علامة "تم" عليه فقط إذا تم إطلاقه بالفعل.

bug

ال 6 كومينتر

شكرا لتقديم القضية. يُرجى اتباع إرشادات الإبلاغ عن المشكلات وتقديم حد أدنى من JSFiddle أو JSBin يحتوي على مجموعة من الخطوات القابلة للتكرار التي يمكن أن تؤدي إلى السلوك الذي وصفته.

لماذا هذا مطلوب؟

مرحبا،

أنا لست OP لكنني أعتقد أنني تمكنت من إعادة إنتاج المشكلة التي كان يشير إليها. أرفقت JSFiddle أدناه للتوضيح.

JSFiddle

  1. النقر فوق كلمة "أكل" يعمل كما هو متوقع: يتم إطلاق الحدث وتحديث بيانات الفاكهة.

  2. إذا أعدنا تحميل JSFiddle ونقرنا على عنصر الامتداد الفرعي "أنا" ، ثم على "أكل" ، فلن يتم تحديث بيانات الفاكهة.

أتمنى أن يساعدك هذا.

boristhuy شكرًا لك على تقديم JSFiddle. هذا بالضبط ما قصدته.

يجب أن يكون هذا خطأ. سيتم حاليًا إزالة مؤشر الحدث بمجرد دخوله ، في الواقع لم يتم استدعاؤه بالفعل بسبب فحص المُعدِّلات.

ربما نحتاج إلى تحديث رمز once لدعمه.

مثل

(function(){
  var called = false;
  return function($events){
    // modifiers check
    // called check
    if (called)return;
    called = true;
    // handler code
  }
})()

أما بالنسبة إلى once المستخدم في وظيفة التقديم ، فسيحدث تغييرًا مفاجئًا. أحاول إيجاد طريقة لإصلاح هذه المشكلة.

  1. [wip] تحديث once genCode للقالب.
  2. [تم] مقابل once المستخدمة في وظيفة التصيير on: {'~click': handle} ، احتفظ بالإستراتيجية القديمة.
  3. [تم] وجود خطأ في مستمعي التحديث للحالة أدناه:
    قديم: '~click': handle
    الجديد: 'click': handle2

defcc لقد

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

aviggngyv picture aviggngyv  ·  3تعليقات

lmnsg picture lmnsg  ·  3تعليقات

paceband picture paceband  ·  3تعليقات

robertleeplummerjr picture robertleeplummerjr  ·  3تعليقات

hiendv picture hiendv  ·  3تعليقات