Ist es möglich, in den LENKER zu überprüfen, ob ein string gleich einem anderen Wert ist, ohne sich zu registrieren einen Helfer? Ich kann nicht scheinen zu finden, alles relevante in den LENKER Referenz.
Beispiel:
{{#if sampleString == "This is a string"}}
...do something
{{/if}}
InformationsquelleAutor colmulhall | 2015-12-13
Es scheint, Sie kann es nicht "direkt"
Versuchen Helfer, warum nicht?
Registrieren Helfer in Ihrem javascript-code:
Verwendung in Vorlage:
Mehr details hier:
Logischer operator in einer handlebars.js {{#if}} bedingte
UPD:
Ein anderer Weg:
vermuten lässt, werden Ihre Daten:
Dann (mit jQuery):
Einer Vorlage verwenden:
InformationsquelleAutor Mihail
Ich würde halt Helfern wie diese:
Dann in deinem code:
InformationsquelleAutor Pablo Varando
Der vorherigen Antwort mit match funktioniert bei mir nicht, ich bekomme eine Fehlermeldung auf der wenn - Anweisung (so etwas wie 'müssen nur ein argument').
Allerdings habe ich nur die Lösung gefunden hier, ohne zu schreiben, mehr Helfer:
InformationsquelleAutor Kerhael
Gerade auf dieses Thema kam aus einer google-Suche auf, wie um zu überprüfen, ob ein string gleich einem anderen string.
Benutze ich HandlebarsJS in NodeJS server-Seite, aber ich benutze auch die gleiche Vorlage-Dateien auf dem front-end mit der browser-version von HandlebarsJS zu analysieren. Dies bedeutete, dass, wenn ich wollte einen eigenen Helfer, hätte ich es zu definieren ist in 2 separate Orte, oder eine Funktion zuweisen, um das Objekt in Frage - zu viel Mühe!!!!
Was die Leute vergessen ist, dass bestimmte Objekte Erben die Funktionen, die verwendet werden können, in die Schnurrbart-Vorlage. Im Falle einer Zeichenfolge:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
Wir können diese Methode verwenden, um wieder entweder ein array von übereinstimmungen oder
null
wenn keine übereinstimmungen gefunden wurden. Dies ist ideal, weil der Blick auf die HandlebarsJS Dokumentation http://handlebarsjs.com/builtin_helpers.htmlSo...
UPDATE:
Nach dem testen auf allen Browsern, das funktioniert nicht mit Firefox. HandlebarsJS geht, andere Argumente für einen Funktionsaufruf, so dass beim String.der Prototyp.match aufgerufen wird, wird das zweite argument (d.h. die Regexp-flags für die match-Funktion aufrufen, wie oben dargelegt Dokumentation) angezeigt wird, zu übergeben. Firefox sieht diese als veraltet Verwendung von String.der Prototyp.match, und so bricht.
Ein workaround ist es zu erklären, eine neue funktionale Prototyp für die String JS-Objekt, und verwenden Sie stattdessen:
Sicherzustellen, dass dieses JS-code enthalten ist vor führen Sie den LENKER.compile () - Funktion, die dann in Ihre Vorlage...
InformationsquelleAutor Jon
Einen gemeinsamen Fall für eine einfache, wiederverwendbare Helfer-Funktion ist die Ursache eine Rendite von string1 wenn die Werte gleich sind und string2, wenn Sie es nicht sind.
Beispiel:
Helfer (nennen wir es mal "ifEqual" und senden 4 Parameter):
Vorlage Verwenden:
Für dieses Beispiel wird angenommen, dass die Vorlage erhält eine "transaction" - Objekt mit "transactionType" Eigenschaft:
{ transactionType: "expense", description: "Copies" }
Lassen Sie uns sagen, unsere Vorlage hat eine
<select>
für die Transaktion Geben, mit verschiedenen<option>s
wie gezeigt. Wir wollen mit LENKER vor, wählen Sie die option, die zusammen mit dem Wert der transactionType.Unserer neuen
{{ ifEqual }}
Helfer wird verwendet, um einfügen "ausgewählt" für die<option>
mit dem entsprechenden Wert von "Ausgabe".InformationsquelleAutor Jeff Matthews
LENKER hat eine bedingte operator namens 'gleich', die zwei Parameter nimmt:
1.Die variable
2.was Ihr überprüfen, ob die variable enthält.
Beispiele, um zu überprüfen, ob 'status' enthält 'Full-Time':
Gleiche Problem wie madprops... das wäre eine unglaubliche Lösung, wenn es funktionierte
Welchen code hast du verwendet? Dieser arbeitete für mich. Können Sie alle ausführlich auf Ihre Frage?
versuchen {{#equals status "Vollzeit"}}
Es ist eine Lüge! Entweder wurde es entfernt von LENKER irgendwann in einer späteren Version oder die person, die antwortete, hatte schon einen eigenen Helfer installiert auf Ihrem Projekt namens "gleich", und Sie wusste nicht, dass es.
InformationsquelleAutor Mekanic
Im LENKER, die Klammern werden verwendet, um aufrufen, der erste Menüpunkt aufgeführt, wie eine Funktion verwenden (optional) die nachfolgenden Elemente als Parameter. Also, die syntax von Ember KANN verwendet werden, ohne Ember, vorausgesetzt, Sie können den Rahmen selbst. Zum Beispiel:
Sobald Sie das tun, können Sie das standard - {{#if}} und {{#solange}} block-Operationen:
Vorsichtig mit der Umstellung zusammenhängen mit {{mit}} oder bei der Verwendung von inline-partials. Sie können den überblick verlieren, Ihr definiert "eq" - Funktion. Der garantierte Weg zur Arbeit, unabhängig von neuen Kontexten:
InformationsquelleAutor Joel Kozikowski
Den Mandrill-mail-service unterstützt LENKER und hier ist es möglich mit "backticks", die zum auswerten einer logischen Ausdruck in einem #if-block:
Ich weiß nicht, ob dies möglich ist, in Allgemeinen, aber Sie sollten es ausprobieren.
Es funktioniert gut für mich.
Das ist gut zu wissen. Persönlich, ich habe nur versucht, es auf Mandrill, wo es gut funktioniert.
InformationsquelleAutor pberggreen