Handlebars helper - renvoyer HTML non texte
J'ai écrit une simple aide pour mon modèle. Voici le code:
Handlebars.registerHelper('splitQuote', function (string) {
if (string.indexOf('|') !== -1) {
return string.replace('|', '<span>') + '</span>';
}
return string;
});
J'ai donc passer une chaîne de caractères, et de diviser la chaîne de caractère'|'. Je veux aussi faire la deuxième partie dans les balises span.
Problème est, le résultat retourné est du texte pur, alors je me balises span, comme un texte, pas en HTML.
Personne ne sait quel est le piège?
Tnx
source d'informationauteur Adrian
Vous devez vous connecter pour publier un commentaire.
Vous avez de marque de la chaîne, comme le code html de votre aide si vous voulez Guidon de ne pas y échapper. Utilisation
Guidon.safeString
pour ce faire. Ci-dessous devrait convenir à vos besoinsComme mentionné dans les commentaires, vous devriez probablement échapper à la chaîne passée en utilisant
Handlebars.Utils.escapeExpression(string)
pour encoder la chaîne avant de faire votre mise en forme personnalisée. Je vous recommande d'écrire comme ceci:Vous n'avez pas besoin d'utiliser
SafeString
. Au lieu de cela, utiliser le "triple moustaches" de guidon:De Guidon site webHTML Échapper à la section:
Guidon HTML échappe valeurs retournées par un {{expression}}. Si vous ne voulez pas de Guidon pour échapper à une valeur, utiliser le "triple-stash", {{{.
Oui, une simple triple devis dans votre code html est d'éviter de s'échapper: