كيفية الحصول على معلومات الفئة من composer؟

هل من الممكن تشغيل بعض الأكواد (من مكون سمة) عند اختيار فئة في المُنشئ؟ أنا مهتم بالحصول على الفئة المحددة سواء عند فتح المُنشئ لأول مرة أو عند تغيير القائمة المنسدلة للفئات.

كنت أفكر في أنه ربما يمكن تحقيق ذلك عن طريق تعديل وحدة تحكم أو مكون، مثل وحدة تحكم المُنشئ. لكنني لم أتمكن من العثور على معلومات الفئة…

يمكنك مراقبة model.categoryId في وحدة تحكم الموزع وتشغيل الكود الخاص بك عند حدوث التغيير.

شكرًا لك @fzngagan!

سؤال متابعة، لم أرَ أي نموذج من قبل :slight_smile:. توصلت إلى ما يلي والذي يبدو أنه يعمل.

const { observes } = require('discourse-common/utils/decorators');
api.modifyClass("controller:composer", {
    @observes('model.categoryId')
    getCategory() {
        let categoryId = this.get("model.categoryId");
        if (categoryId == null) return;
        
        let category = this.site.categories.findBy("id", categoryId).name;
    }
});

هل هذه هي الطريقة الصحيحة (أو المفضلة) للقيام بذلك؟ وهل هذه أفضل طريقة للحصول على اسم الفئة من المعرف؟

يمكنك التحقق مما يحتويه كائن model. قد يكون اسم الفئة موجودًا بالفعل هناك.

بمعنى “كائن النموذج”، هل تقصد أنني يجب أن أفعل شيئًا مثل هذا؟

this.get("model")

تعديل:
على أي حال، الكود يعمل بشكل رائع. شكرًا مرة أخرى!