使用 JS 获取类别名称

可能有一种方法可以在主题页面和分类页面上一致地实现,但我通过两种不同的方式获取了分类 ID……一种用于分类页面:

<script type="text/discourse-plugin" version="0.8">
const container = Discourse.__container__;
const controller = container.lookup('controller:navigation/category');

api.onPageChange((url, title) => {
  console.log(controller.get("category.id"));
});
</script>

另一种类似的方式用于主题页面:

<script type="text/discourse-plugin" version="0.8">
const container = Discourse.__container__;
const controller = container.lookup('controller:topic');

api.onPageChange((url, title) => {
  console.log(controller.get("model.category_id"));
});
</script>

在分类页面的示例中,您也可以使用 category.namecategory.slug,但在主题模型中,只有 category_id 可用,因此您需要做更多工作来获取名称。无论如何,使用 ID 可能是更好的选择,因为即使分类名称或 slug 发生变化,ID 也能保持一致。