Benutzer-Karten-Beitragsnamen: userModel.custom_fields funktioniert nach Antwort/Bearbeitung nicht mehr

Ich glaube, das könnte ein Fehler in Discourse sein, bin mir aber nicht sicher. Vielleicht mache ich etwas falsch.

Ich habe ein Plugin, das Informationen zum user-card-post-names-Connector hinzufügt.

Handlebars:

Javascript:

Das ruft wiederum dieses Javascript auf, das die meiste Arbeit erledigt:

Problembeschreibung:

Im vorherigen JS-Code befinden sich diese beiden Zeilen:

var version = userModel.custom_fields && userModel.custom_fields["directoryopus_link_version"];
var edition = userModel.custom_fields && userModel.custom_fields["directoryopus_link_edition"];

Dann wird ein Test if (version || edition) { ... durchgeführt und einige Strings (opusLinkClass, opusLinkIcon, opusLinkText) je nach Ergebnis generiert, die dann gespeichert werden:

component.set("opusLinkClass", opusLinkClass);
component.set("opusLinkIcon", opusLinkIcon);
component.set("opusLinkText", opusLinkText);

Diese Strings werden dann in der Handlebars-Datei am Anfang dieses Beitrags verwendet.

Es gibt nie Fehler oder Warnungen im Logfenster des Browsers, aber manchmal geht das schief.

Ich teste mit einem Konto, das beide custom_fields gesetzt hat, daher sollte der Test if (version || edition) immer den ersten Zweig nehmen, nicht den else if (!viewingStaff) darunter.

Doch manchmal geht es in den zweiten Zweig, was bedeutet, dass version und edition nicht gesetzt waren.

Das passiert normalerweise nicht, deshalb glaube ich, dass es ein Fehler in Discourse sein könnte.

Es scheint nur dann schiefzugehen, wenn ich einen neuen Thread erstelle und dann darauf antworte oder wenn ich eine gerade gemachte Antwort bearbeite. Es ist, als ob das userModel-Objekt nicht richtig initialisiert wird, wenn der Connector in einigen Situationen ausgeführt wird, vielleicht aufgrund eines Race Conditions irgendwo?

Es scheint nur einmal pro Thread schiefzugehen. Wenn ich die Seite mit F5 aktualisiere, ist alles wieder in Ordnung und bleibt für diesen Thread in Ordnung. (Zumindest soweit ich das beurteilen kann. Es scheint halb-zufällig zu sein, daher ist es möglich, dass ich es für denselben Thread noch nicht wieder habe passieren sehen.)

Vielen Dank für Ihre Zeit und alle Vorschläge.