尝试在自定义菜单项中显示主题

为了学习和应用不同的话语概念,我正在开发一个插件,用于显示所有热门话题。我尚未确定热门话题的具体标准,但目前遇到了以下问题。

我也在描述每个问题时的思考过程,因此我更希望获得基于思考过程的解决方案,而非直接的代码答案,这样能帮助我清晰地、普遍地思考如何解决其他类似问题。

我已使用 api.addNavigationBarItem 创建了一个新的菜单项。
同时,我在前端和后端创建了一个自定义路由 /hot-topics
目前,我在 /hot-topics 路由上仅显示一个简单的 h3 标题。

  1. 我的第一个任务是:点击导航菜单项后,导航栏应保持可见,且“热门话题”标签应处于高亮状态。
    我认为这可以通过 {{navigation-bar}} 组件实现,但我觉得需要在路由对象的 model 方法中返回导航项数据,以便传递给模板。
    我曾在 model 方法中返回一个硬编码的数组,但未能成功。

  2. 我的第二个任务是:获取所谓的热门话题,并在“热门话题”标签页中展示它们。
    为此,我使用了 {{categories-topic-list}} 组件。但我很难弄清楚应如何向该组件传递数据,以正确显示所需的话题。

请提供一些推进此项目的思路。此外,在尝试解决此类问题时,您的思考过程是怎样的?

感谢您尝试学习 Discourse!

我理解这是一个学习过程,但我确实有个问题想立刻提出:“Hot”(热门)与访问 /top 查看我们认为的“顶级”内容之间有什么区别?您可以根据需要按周甚至按天进行筛选。这应该就是我们的“热门”内容。

您可以考虑将您的路由作为 discovery. 路由的一部分来添加,就像我们为 latest(最新)、new(新帖)、top(顶级)等所做的那样。这些路由已经会自动为您渲染导航栏。我建议查看 Discourse 的源代码,了解其他路由是如何创建的。其中会有如何获取数据以填充主题列表的示例。

经过一段时间的练习后,我意识到需要复用现有内容,而不是重新创建。我学习了这门课程,以更深入地理解 Ember 的概念。

结合你分享的关于 discovery. 路由的想法,我打算深入阅读 Discourse 的代码,看看能否清晰地理解 Discourse 如何为这些路由获取数据并将其传递给组件。

非常感谢你抽出时间,@eviltrout