Comment trouver une balise en utilisant l'API des plugins

J’ai l’instruction d’importation suivante dans mon code (côté javascript) :

import Tag from "discourse/models/tag";

Cependant, je ne peux pas l’utiliser pour récupérer un objet tag par son nom. Mon objectif est d’obtenir la description du tag, mais je n’ai que le nom. Je m’attendais à quelque chose de similaire à ceci :

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

Le modèle Tag a-t-il une fonction similaire ?

1 « J'aime »

Vous pouvez récupérer les données des balises à partir du point de terminaison /tags.json.

Dans cet exemple, j’obtiens la description d’une balise 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 « J'aime »

Merci ! Je pense avoir trouvé une façon plus efficace d’y parvenir :

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

Cependant, je ne sais pas si this.store.find est plus rapide que d’envoyer une requête ajax à toutes les balises et de filtrer. Peut-être fait-il la même chose.

2 « J'aime »