Como encontrar uma tag usando a plugin-api

Tenho a seguinte instrução de importação no meu código (lado javascript):

import Tag from "discourse/models/tag";

No entanto, não consigo usá-la para recuperar um objeto de tag pelo seu nome. Meu objetivo é obter a descrição da tag, mas só tenho o nome. Eu esperava algo semelhante a isto:

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

O modelo Tag tem uma função semelhante?

1 curtida

Você pode buscar dados de tags no endpoint /tags.json.

Neste exemplo, estou obtendo a descrição de uma tag de 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 curtidas

Obrigado! Acho que encontrei uma maneira mais eficiente de fazer isso:

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

No entanto, não sei se this.store.find é mais rápido do que enviar uma consulta ajax para todas as tags e filtrar. Talvez esteja fazendo a mesma coisa.

2 curtidas