في الواقع، لم يكن من الممكن اختراق مشكلتي بالطريقة المذكورة أعلاه:
- نعم، تم تغيير مستوى الإشعارات ولكن…
- لم يتم حفظه. ستحتاج إلى النقر في مكان آخر لحفظه بإجراء آخر.
من خلال البحث المكثف عن كلمات عشوائية في قاعدة بيانات كود GitHub، تمكنت من العثور على بنية مثل هذه:
{{d-button action=(action "up" wc) ...}}.
بعد بعض الاختبارات، توصلت إلى الاستنتاج بأن الأمر يعمل بهذه الطريقة:
- القالب:
{{d-button action=(action "اسالإجراء" arg1 arg2) ...}}`. - JavaScript:
api.modifyClass("component:some-component", { actions: { nameoftheaction(arg1, arg2, argA, argB) { console.log(arg1); console.log(arg2); console.log(argA); console.log(argB); } } })
أول حجتين arg1 و arg2 في الطرق هما اللتان تُمرران بواسطة القالب. أما الحجج المتبقية argA، argB… فقد تُعطى حسب خصوصية المكون (على سبيل المثال، سيعيد زر category-notifications-button عددًا صحيحًا يعتمد على الإعداد الذي ينقر عليه المستخدم).
أنا لست متأكدًا تمامًا من صحة ما أكتبه، لكنه قد يساعد شخصًا يطرح نفس السؤال الذي طرحته.