RGJ
(Richard - Communiteq)
1
我希望能够调整搜索结果(右上角放大镜类的下拉菜单)的一些样式。现在它似乎是动态生成组件(在 app/assets/javascripts/discourse/app/lib/search.js 中),而不是使用模板。我似乎无法做到:
api.modifyClass("component:search-result-post", {
didInsertElement() {
this._super(...arguments);
},
});
或者类似的东西。
我该如何获得一个触发器/事件并修改一些生成的 HTML?
2 个赞
理查德,您好:
您能详细说明一下您在寻找哪些修改吗?
作为起点,我认为您需要调整:
api.reopenWidget(`search-result-post`, {
html(attrs) {
//
}
})
这里是 post,但您也有:tag、category、group、user 和 topic。
4 个赞
RGJ
(Richard - Communiteq)
4
更新:该小部件中的 HTML 生成相当复杂,并且有许多外部依赖项。我也不想将所有这些代码复制到我们的插件中,所以我最终这样做了
api.reopenWidget(`search-result-topic`, {
html(attrs) {
const html = this._super(attrs);
// 按我们认为合适的方式修改 HTML
return html;
}
});
修改已生成的 HTML 可能不是最优雅的方法,但它使我无需从核心复制大块代码到插件中,从而使插件能够更好地应对未来的核心更新。
1 个赞
是的,我注意到当我尝试在我这边进行操作时也是如此。我认为你在这里没有太多选择。
1 个赞
RGJ
(Richard - Communiteq)
关闭
6
此主题在上次回复后 30 天自动关闭。不再允许回复。