是否可以在选择分类器中的分类时运行一些代码(来自主题组件)?我想在分类器刚打开时以及分类下拉菜单被更改时获取所选的分类。
我曾想过这或许可以通过修改控制器或组件(例如分类器控制器)来实现,但未能找到分类信息。
是否可以在选择分类器中的分类时运行一些代码(来自主题组件)?我想在分类器刚打开时以及分类下拉菜单被更改时获取所选的分类。
我曾想过这或许可以通过修改控制器或组件(例如分类器控制器)来实现,但未能找到分类信息。
你可以在 Composer 控制器中观察 model.categoryId,并在其发生变化时执行你的代码。
感谢 @fzngagan!
还有一个后续问题,之前从未见过任何模型
。我写了以下代码,看起来可以正常工作。
const { observes } = require('discourse-common/utils/decorators');
api.modifyClass("controller:composer", {
@observes('model.categoryId')
getCategory() {
let categoryId = this.get("model.categoryId");
if (categoryId == null) return;
let category = this.site.categories.findBy("id", categoryId).name;
}
});
这样做对吗(或者是否是推荐的做法)?从 ID 获取分类名称的最佳方式也是这样吗?
你可以检查 model 对象包含的内容。它可能已经包含了类别名称。