Staub wenn Bedingung

8

Ich habe Probleme mit einem Staub wenn Bedingung. Ich habe eine Teilweise, die je nach Ländercode auf 2 verschiedene Staubvorlagen zeigt.

%Vor%

Ich versuche eine if else Bedingung zu machen, die herausfinden wird, ob {countryCode} US ist. Beispiel:

%Vor%

Das funktioniert nicht. Hat jemand eine Idee, wo ich damit falsch gelaufen bin?

    
Tom Feeney 22.02.2013, 00:30
quelle

4 Antworten

19

Der @if -Helfer wurde aufgrund einer potenziellen Sicherheitslücke als veraltet eingestuft (er verwendet eval für die Bedingung). Ich würde stattdessen den Helfer @eq empfehlen.

%Vor%

Wenn das nicht funktioniert, vergewissere dich, dass countryCode in deinem Kontext verfügbar ist (du kannst dafür {@contextDump/} verwenden).

    
smfoote 22.02.2013 02:00
quelle
10

Ich würde das tun:

%Vor%

Stellen Sie sicher, dass Sie Version 1.x oder höher verwenden.

Stellen Sie sicher, dass Sie die Helfer geladen haben. Ich bin neulich darauf gestoßen. Du brauchst es, damit es funktioniert, und es wird dir kein Fehler geben, der dir sagt, dass es nicht ist.

    
Jeremy 09.05.2013 20:54
quelle
2

Wenn Sie von @if begeistert sind, aber die Sicherheitsprobleme bei der Verwendung von eval nicht mögen, können Sie meinen alternativen @if-Helfer verwenden. Es bietet ein Attribut test="expr", um Ihre if-Bedingung anzugeben. eval wird NICHT zur Auswertung des Ausdrucks verwendet.

Variablen im Ausdruck sind auf Staubnamen und den Pfad beschränkt, die für den Zugriff auf Werte aus dem Kontext verwendet werden. Konstanten sind JavaScript Integer-, Float-, Hex- und String-Formen ("xx" oder "xx"). Operanden können eine "Variable", eine Konstante oder ein binärer oder unärer Ausdruck sein, der einen Wert ergibt. Relationale Operatoren sind & lt ;, & gt ;, & lt; =, & gt; =, ==,! =. Boolsche Operatoren sind! (unär), || und & amp; & amp; .. Die Priorität für den Operator ist dieselbe wie für JavaScript und Klammern sind zur besseren Übersichtlichkeit oder für Fälle, in denen die Priorität nicht gewünscht ist, zulässig.

Hier ist ein Beispiel:

%Vor%

Beachten Sie, dass es immer noch Code enthält, um das Attribut cond="expr" zuzulassen, das eval () verwendet. Dies bietet einen Migrationspfad für vorhandenen Code.

Sie können es als npm-Modul installieren ( Ссылка ).

    
rragan 05.02.2014 17:36
quelle
2

Sie können auch verwenden:

%Vor%

Zum Beispiel:

Daten

%Vor%

Staubvorlage

%Vor%

Ausgabe:

%Vor%     
cschaefer 06.01.2017 14:41
quelle

Tags und Links