修改与“新主题”相关的变量

我正在尝试修改 tag-show.jscreateTopicDisabled 的行为。但我似乎无法像在这里看到的那样覆盖它。


我尝试过像这样使用 api.modifyClass()api.modifyClassStatic()

api.modifyClass("controller:tag-show", {
    @discourseComputed(
        "canCreateTopic",
        "category",
        "canCreateTopicOnCategory",
        "tag",
        "canCreateTopicOnTag")
    createTopicDisabled(
        canCreateTopic,
        category,
        canCreateTopicOnCategory,
        tag,
        canCreateTopicOnTag)
    {
        return false;
    }
})

还有这种:

api.modifyClass("controller:tag-show", {
    createTopicDisabled: function() { return false; }
})

以及各种其他变体。


我还尝试获取默认控制器并重新打开它,这在覆盖 actions 时工作正常。

const TagShowController = require('discourse/controllers/tag-show').default;
TagShowController.reopen({
    createTopicDisabled: function() {
        return false;
    }
})

到目前为止,这些方法都没有真正生效。任何帮助都将不胜感激。

1 个赞