2016-05-05 2 views
0

Je suis assez nouveau au guidon, alors s'il vous plaît nu avec moi.Enlever <br> de Handlebars Template

J'ai un modèle qui est rempli à partir d'une base de données pilotée par un CMS. Un CMS où les personnes qui entrent dans les données ne connaissent pas vraiment le HTML, ils disent juste qu'ils le font. Donc, ils vont entrer dans une série de balises de rupture (à tort, ne vous inquiétez pas) au lieu de simplement envelopper leur contenu dans un paragraphe. J'importe ensuite tout cela dans un petit gabarit soigné, et j'utilise ces données pour remplir les étiquettes de données à afficher sur les boutons, et d'autres choses.

J'ai vu quelques helpers de Handlebars qui disent qu'ils font une recherche et un remplacement, mais je n'ai aucune idée comment écrire la syntaxe dans mon modèle pour le compiler avec grognement sans signaler les erreurs. Voici l'aide que je voulais utiliser:

Handlebars.registerHelper('replace', function(find, replace, options) { 
    var string = options.fn(this); 
    return string.replace(find, replace); 
}); 

Maintenant, cela semble assez simple, mais il n'y a pas de documentation sur la façon de réellement lancer la planque dans votre modèle autre que {{#replace}}

Le paramètre J'essaie de regarder à travers est {{caption}} et je cherche une instance de '
' et le remplacer par ''. Lorsque j'écris le stash comme ceci: {{#replace '<br>', '', légende}}, mais ensuite j'obtiens une erreur d'analyse.

Merci d'avance.

Répondre

1

Je ne suis pas sûr que vous voudriez utiliser un assistant de bloc dans cette situation. Je pense que l'aide régulière suivante ferait:

Handlebars.registerHelper('replace', function (find, replace, context) { 
    return context.replace(new RegExp(find, 'g'), replace); 
}); 

Notez que j'utilise une expression rationnelle afin que nous puissions remplacer tous les instances du texte find.

Vous pouvez ensuite utiliser cette aide au sein de votre modèle de la façon suivante:

{{replace '<br>' ' ' caption}} 
+0

... maintenant je suis obtenir un « Uncaught Erreur: aide MISSING:« remplacer », et je viens de le mettre dans le modèle avant les blocs du Handlebar – Murphy1976

+0

Que signifie "mettre dans le modèle"? – 76484

+0

J'ai des blocs de Javascript en haut du template pour définir toutes les fonctions, et un bloc de javascript en bas qui s'exécute sur le document prêt. dans le corps du modèle est le balisage du guidon. – Murphy1976