جافاسكريبت - أنجولار2 استخدام معامل إلفيس على مفتاح الكائن مع شرطة مائلة
كانت لدي مشاكل في التحليل، والتي تم حلها بمشغل إلفيس، لكن إذا كان لدي مفتاح يحتوي على شرطة مائلة للأمام، لا أستطيع استخدام مشغل إلفيس لأنني مضطر لوضع هذا المفتاح بين أقواس مربعة.
يعمل إذا كانت المفتاح بسيطة مثل هذا ("firstname")
{{ data?.record?.firstname }}
لا يعمل إذا كانت المفتاح يحتوي على أقواس أمامية مثل هذا ("name/first")
{{ data?.record?['name/first']}}
يبدو أن إلفيس غير متاح إذا استخدمت الأقواس المربعة.
هل هناك أي حل بديل؟ ربما طريقة للهروب من شرطة المائل الأمامي في التدوين بالنقاط مثل هذا:
{{ data?.record?.name\\/first }}
الإجابة رقم 1
عامل إلڤيس متاح فقط لـ . وليس لمعاملات إلغاء الإشارة الأخرى مثل [].
كحل مؤقت استخدم
{{ data?.record ? data.record['name/first'] : null}}
الإجابة رقم 2
في الواقع، يمكنك استخدام كل من ? و [] في نفس الوقت:
البناء الجملة
obj?.prop
obj?.[expr]
arr?.[index]
func?.(args)
في حالتك، يجب أن يكون:
{{ data?.record?.['name/first']}}
وما زال يعمل إذا كان مصفوفة، مثل هذا:
attributes['bar/foo']?.[0]
مفيد جدًا... :-)
المصدر: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
