我也需要这个功能。目前我是这样做的,但这太耗时了。
const selectedTopics = this.selectedTopics
//输入话题ID,输出真实话题对象
this.selectedTopicsID.forEach(function(tid,index){
Topic.find(tid,{}).then(results => {
selectedTopics.pushObject(results)
})
});
我打算重新打开插件中的 listcontroller(plugin.rb),添加一个新的端点,并在前端初始化器中重新打开 topic-list,然后做类似以下的事情:
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/models/topic-list.js.es6#L129
但肯定有更简单的方法。真的还没有通过 ID 批量获取话题的端点吗?
非常希望能得到一些帮助 
编辑:我是这样解决这个问题的:
使用方式如下:
import TopicList from 'discourse/models/topic-list';
const selectedTopics = this.selectedTopics
//输入话题ID
TopicList.topics_array(this.selectedTopicsID).then(results => selectedTopics.pushObjects(results.topic_list.topics))
目前这仍然有一个缺点,即它返回的不是“真实”的 Topic 对象,但我猜添加一行类似下面的代码就能解决:
我仍然不确定这是否是正确的方法,或者是否会破坏安全性。
还可以做另一件事:首先检查 store 中记录是否已存在,然后只加载不存在的部分,使用 fromMap。类似于:
不管怎样,这里已经变得太啰嗦了 
这是我的最终解决方案,今天就到此为止:
2 个赞