كيفية العثور على علامة باستخدام plugin-api

لدي عبارة الاستيراد التالية في الكود الخاص بي (جانب جافاسكريبت):

import Tag from "discourse/models/tag";

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

const tagObj = Tag.find("tag_name");
const tagDesc = tagObj.description;

هل لدى نموذج العلامة وظيفة مماثلة؟

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

يمكنك جلب بيانات العلامات من نقطة النهاية /tags.json.

في هذا المثال، أحصل على وصف علامة email:

import { ajax } from "discourse/lib/ajax";
  ajax(`/tags.json`).then(({ tags }) => {
    const emailTag = tags.find((tag) => tag.name === "email");
    const emailTagDesc = emailTag.description;
  });
4 إعجابات

شكراً! أعتقد أنني وجدت طريقة أكثر كفاءة لإنجاز ذلك:

this.store.find("tag-info", "email").then(data => {
 const tag_desc = data.description
});

ومع ذلك، لا أعرف ما إذا كان this.store.find أسرع من إرسال استعلام ajax إلى جميع العلامات وتصفيتها. ربما يفعل الشيء نفسه.

إعجابَين (2)