هل يمكن حقن المعاملات من القالب إلى إجراء الودجة؟

في الواقع، لم يكن من الممكن اختراق مشكلتي بالطريقة المذكورة أعلاه:

  • نعم، تم تغيير مستوى الإشعارات ولكن…
  • لم يتم حفظه. ستحتاج إلى النقر في مكان آخر لحفظه بإجراء آخر.

من خلال البحث المكثف عن كلمات عشوائية في قاعدة بيانات كود 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 عددًا صحيحًا يعتمد على الإعداد الذي ينقر عليه المستخدم).

أنا لست متأكدًا تمامًا من صحة ما أكتبه، لكنه قد يساعد شخصًا يطرح نفس السؤال الذي طرحته.

إعجاب واحد (1)