Mostra l'elenco degli argomenti tramite array di ID degli argomenti

Ho bisogno anch’io di questa funzionalità. Al momento la sto implementando in questo modo, ma ci vuole troppo tempo.

    const selectedTopics = this.selectedTopics
     //consuma gli ID dei topic e restituisce i topic reali
     this.selectedTopicsID.forEach(function(tid,index){
       Topic.find(tid,{}).then(results => {
         selectedTopics.pushObject(results)
       })
     });

Sto per riaprire il listcontroller nel mio plugin.rb e aggiungere un nuovo endpoint, oltre a riaprire il topic-list nell’inizializzatore del frontend, per fare qualcosa di simile a questo:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/models/topic-list.js.es6#L129
Ma deve esserci un modo più semplice per farlo. Esiste davvero ancora un endpoint per recuperare i topic in blocco tramite ID?
Sarei molto grato per un aiuto :smiley:
EDIT: Ecco come ho risolto questo problema per me:
https://github.com/spirobel/projects/commit/b514a366f05005888805fc2f57118dfd9fd61fa1
Ecco come può essere utilizzato.

import TopicList from 'discourse/models/topic-list';
    const selectedTopics = this.selectedTopics
    //consuma gli ID dei topic
    TopicList.topics_array(this.selectedTopicsID).then(results => selectedTopics.pushObjects(results.topic_list.topics))

Al momento questo ha ancora lo svantaggio di non restituire oggetti “veri” di tipo Topic, ma immagino che aggiungere una riga come questa lo risolverà:

Sono ancora incerto se questo sia il modo corretto di procedere e/o se ciò comprometta la sicurezza.
Un’altra cosa che si potrebbe fare: controllare prima nello store se il record è già presente e poi caricare solo ciò che manca, utilizzando fromMap. Simile a:

Comunque, sto diventando troppo verboso qui :smiley:
Questa è la mia soluzione finale; chiudo qui la giornata: