1
Ich habe eine Lenker Vorlage mit mehreren Iff-Blöcken. iff ist ein benutzerdefinierter Helfer zum Vergleichen von Werten. Die Vorlage kompiliert, aber oo Anwendung es bekomme ich keine Ausgabe und keine Fehler.Wie benutze ich Lenker Conditional Helpers?
Bitte was mache ich falsch?
iff Helfer
Handlebars.registerHelper("iff", function (v1, operator, v2, options) {
switch (operator) {
case '==':
return (v1 == v2) ? options.fn(this) : options.inverse(this);
case '===':
return (v1 === v2) ? options.fn(this) : options.inverse(this);
case '<':
return (v1 < v2) ? options.fn(this) : options.inverse(this);
case '<=':
return (v1 <= v2) ? options.fn(this) : options.inverse(this);
case '>':
return (v1 > v2) ? options.fn(this) : options.inverse(this);
case '>=':
return (v1 >= v2) ? options.fn(this) : options.inverse(this);
case '&&':
return (v1 && v2) ? options.fn(this) : options.inverse(this);
case '||':
return (v1 || v2) ? options.fn(this) : options.inverse(this);
case '!=':
return (v1 != v2) ? options.fn(this) : options.inverse(this);
case '!==':
return (v1 !== v2) ? options.fn(this) : options.inverse(this);
default:
return options.inverse(this);
}
});
Vorlage
{{#each message}}
{{#iff type '==' -1}}
<div class='sb-date'>{{text}}</div>
{{/iff}}
{{#iff type '==' 1}}
<div class='sb sb-text sb-{{dir}}'>{{text}}<div class="sb-time">{{time}}</div></div>
{{/iff}}
{{#iff type '==' 5}}
<div class='sb sb-text sb-{{dir}}'>{{text}}<div class="sb-time">{{time}}</div></div>
{{/iff}}
{{#iff type '==' 6}}
<div class='sb sb-text sb-{{dir}}'>{{text}}<div class="sb-time">{{time}}</div></div>
{{/iff}}
{{#iff type '==' 2}}
<div class='sb sb-image sb-{{dir}}'><img alt="" src="media/{{text}}" /><div class="sb-time">{{time}}</div></div>
{{/iff}}
{{#iff type '>' 2}}
<div class='sb sb-file sb-{{dir}}'>media/{{text}}<div class="sb-time">{{time}}</div></div>
{{/iff}}
{{/each}}
Es sieht für mich wie es funktioniert. Der einzige Grund, warum ich denken könnte, dass Sie keine Ausgabe erhalten, ist, dass Ihre Daten kein "Nachrichten" -Array haben. – 76484
Sie sind richtig, aber ich muss auch {{#ach diesem}} verwenden –
Beachten Sie, dass die Fälle möglicherweise nicht funktionieren für '<', '>', '&', da diese Zeichen in '<', '>', '& übersetzt werden 'aus dem HTML. [Zeichenentitäten] (https://www.w3.org/TR/html4/charset.html#h-5.3.2) – kashiraja