Handlebars-Templates bieten nur rudimentäre boolesche Logik. Sie können prüfen, ob eine Eigenschaft truthy-Werte hat.
Für komplexere Logik müssen Sie die Berechnung in der Ember JS-Datei durchführen, die mit der Template verknüpft ist.
Angenommen, Sie haben eine Template unter templates/components/my-component.hbs. Dann müssten Sie die JS-Datei components/my-component.js verwenden, um die Berechnung durchzuführen.
In dieser Datei würden Sie etwas wie folgt machen:
Ich habe es noch nicht ganz zum Laufen gebracht – unter anderem, weil ich dort draußen kaum Beispiele finde, wie man berechnete Eigenschaften für diese Art von Operation verwendet.
In meinem Fall ändere ich in meinem Plugin den Gruppenindex in der Vorlage. Also in der Datei: plugin/assets/javascripts/discourse/groups/index.hbs (Ich habe dort den gesamten Gruppenindex-Code eingefügt und meine Änderungen darauf aufgesetzt.)
Meinst du, dass das JS für die berechnete Eigenschaft in einer von mir erstellten Datei namens plugin/assets/javascripts/discourse/groups/index.js landen soll? Oder kann ich diesen Code einfach in einen Initialisierer einfügen?
Das ist mein bester Versuch, das umzusetzen, worüber du sprichst – ist das das, was du im Sinn hattest:
{{#if property}}
<div>Yep, es gibt einen Treffer!</div>
{{/if}}
Oder meintest du, ich solle in @discourseComputed wörtlich allgemeine Werte wie “string1” und “string2” eingeben und dann die Vorlage zu {{#if property group.name "Amazing_Name"}} ändern? (Nur so könnte ich dafür sorgen, dass jeder Wert in der Vorlage dynamisch ist.)
Ich habe bisher keinen der beiden Ansätze vollständig zum Laufen bekommen.
Hast du es geschafft, es zum Laufen zu bringen? Ich hätte gerne ein detailliertes Beispiel, wie das geht (welcher Inhalt, in welcher Datei und an welcher Stelle in der Datei, falls das relevant ist).
Ich habe das selbst tatsächlich nie zum Laufen gebracht und musste weitermachen. Es erschien mir albern, so viel Zeit mit etwas zu verbringen, was normalerweise eine grundlegende Programmieraufgabe wäre. In meinem Fall war es wahrscheinlich hier und dort ein bisschen falsche Syntax, aber ich habe nie vollständig funktionierende Beispiele gefunden. Ich wäre auch dankbar für ein vollständiges, funktionierendes Beispiel dafür, wie man if string === string macht.