Knockout: تقيِّم ارتباطات `foreach` و` template` تعبير نموذج العرض عدة مرات

تم إنشاؤها على ١٩ أبريل ٢٠١٩  ·  4تعليقات  ·  مصدر: knockout/knockout

(قارن الانحدار 3.5.0: مع إعادة الربط مع إعادة استدعاء تعبير دالة معين بدلاً من استخدام القيمة التي تم with يقيّم تعبير نموذج العرض الخاص به عدة مرات.)

يقوم الربط foreach بتقييم تعبير نموذج العرض الخاص به عدة مرات.
https://jsfiddle.net/fastfasterfastest/y5pndfku/

يقوم الربط template بتقييم تعبير نموذج العرض الخاص به عدة مرات.
https://jsfiddle.net/fastfasterfastest/vLt6zsjg/

التعليق الأكثر فائدة

وأنت توافق على أنها حشرة؟

بالتأكيد لا يمكننا الحصول عليها

  • with: expr
  • foreach: expr
  • template: { data: expr }

تتصرف بشكل مختلف عندما يتعلق الأمر بكيفية تقييم الضربة القاضية (في كثير من الأحيان) للتعبير ، أليس كذلك؟ أعتقد أن الضربة القاضية إما تحتاج إلى ضمان تقييمها للتعبير مرة واحدة لجميع هذه الارتباطات (وربما غيرها) ، أو ذكر صراحة أنه يمكن تقييم التعبير عدة مرات. إذا كان الأخير ، أعتقد أنه يجب إعادة فتح # 2455 واعتباره ليس خطأً.
أعتقد أنه من المهم أن تتصرف المرابط المضمنة بالضربة القاضية باستمرار.

ال 4 كومينتر

يبدو أن هذا هو الحال منذ 3.0.0.

وأنت توافق على أنها حشرة؟

بالتأكيد لا يمكننا الحصول عليها

  • with: expr
  • foreach: expr
  • template: { data: expr }

تتصرف بشكل مختلف عندما يتعلق الأمر بكيفية تقييم الضربة القاضية (في كثير من الأحيان) للتعبير ، أليس كذلك؟ أعتقد أن الضربة القاضية إما تحتاج إلى ضمان تقييمها للتعبير مرة واحدة لجميع هذه الارتباطات (وربما غيرها) ، أو ذكر صراحة أنه يمكن تقييم التعبير عدة مرات. إذا كان الأخير ، أعتقد أنه يجب إعادة فتح # 2455 واعتباره ليس خطأً.
أعتقد أنه من المهم أن تتصرف المرابط المضمنة بالضربة القاضية باستمرار.

صحيح أننا لم نحاول سابقًا تحسين عدد مرات تقييم قيمة الربط. عند التحقق من الاختبارات 3.5.0 ، وجدت ستة منها تفشل إذا قدمت عمداً تقييمًا إضافيًا (انظر أدناه). لكن كل منها يستخدم فقط عدد التقييمات كبديل لتحديثات الربط. أعتقد أنه من المنطقي ، إذن ، إعادة وضع علامة # 2455 كطلب ميزة وليس خطأ حقيقي.

- Deferred bindings Should leave descendant nodes unchanged if the value is truthy and remains truthy when changed.
- Templating Data binding syntax should permit nested templates, and only bind inner templates once when using getBindingAccessors.
- Templating Data binding syntax should permit nested templates, and only bind inner templates once when using getBindings.
- Native template engine Anonymous templates may be nested.
- Binding: If Should leave descendant nodes unchanged if the value is truthy and remains truthy when changed.
- Binding: Using Should minimize binding updates with nested bindings.
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات