如何使用 plugin-api 查找标签

我在我的代码(JavaScript 端)中有以下导入语句:

import Tag from "discourse/models/tag";

但是,我无法使用它通过名称检索标签对象。我的目标是获取标签描述,但我只有名称。我期望类似这样的东西:

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

Tag 模型有类似的功能吗?

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 个赞