Wie hat man if "string === string" in Template?

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:

import discourseComputed from "discourse-common/utils/decorators";
import Component from "@ember/component";

export default Component.extend({
  @discourseComputed("string1", "string2")
  property(string1, string2) {
    return string1 === string2;
  }
});

property ist lediglich der Name einer Funktion, könnte aber auch ein anderer Name sein.

Dann würden Sie in der Template etwas wie folgt machen:

{{#if property}}
 blah blah...
{{/if}}

Dadurch wird die berechnete Eigenschaft aus der JS-Datei geladen und der Inhalt im #if-Block nur dann angezeigt, wenn property true zurückgibt.