Auszug für reguläre Themen abrufen

Hallo, ich hatte das gleiche Problem und habe es gelöst, indem ich das Thema erneut abgerufen habe, um die benötigten Daten zu erhalten. Ich habe dies in der Komponente topic-list-item.js mit Ember.PromiseProxyMixin umgesetzt. Wie man es verwendet, findest du hier: Use Ember.PromiseProxyMixin in a theme

Der Code sieht ungefähr so aus:

// Ich habe eine benutzerdefinierte memoize-Funktion verwendet, um die Anzahl der Anfragen zu reduzieren
const getTopic = memoize(id => ajax(`/t/${id}.json`).then(data => data));
// ...
// Innerhalb der Komponente

  @discourseComputed("topic")
  topicPromise(topic) {
    return getTopic(topic.id);
  },

  @discourseComputed("topicPromise")
  topicProxy() {
    const promise = this.get("topicPromise");
    return promise && PromiseObject.create({ promise });
  },

  postStream: reads("topicProxy.content.post_stream"),

  @discourseComputed("postStream")
  excerpt(postStream) {
    if (!this.get("postStream")) return false;
    return `${stripHtml(postStream.posts[0].cooked).slice(0, 150)}...`;
  },

stripHtml ist eine benutzerdefinierte Funktion, um HTML aus dem ersten Beitrag zu entfernen.

In topic-list-item.hbs würdest du Folgendes haben:

  {{#if topicProxy.isFulfilled}}
    <div class="excerpt">
      {{#if excerpt}}
        {{html-safe excerpt}}
      {{/if}} 
    </div>
  {{/if}}