2017-06-22 4 views
0

Pour la vue donnée, Marionette 2.4.4:Comment passer un saut de ligne dans Marionette templateHelper/templateContext?

var view = Marionette.LayoutView.extend({ 
    template: Handlebars.compile('{{body}}'), 
    templateHelpers: function(){ 
    return { 
     body: "Line one. Line Two.", 
    }; 
    } 
}); 

view = new view(); 
MasterView.showChildView('master_content', view); 

Que dois-je ajouter à la propriété « corps » pour faire « une ligne. » apparaît sur une ligne au-dessus de "Ligne deux". une fois rendu?

Remarque: templateHelpers est devenu templateContext dans les versions plus récentes de Marionette. Les expériences: <br> ne fonctionne pas. Il est simplement montré en clair.

Répondre

0

La raison pour laquelle <br> n'a pas fonctionné est due à Handlebars, pas Marionette. Pour this stack overflow question, pour que Handlebars n'échappe pas aux expressions html, utilisez les accolades triples {{{}}} au lieu de {{}}. Ainsi, le code suivant fonctionne:

var view = Marionette.LayoutView.extend({ 
    template: Handlebars.compile('{{body}}'), 
    templateHelpers: function(){ 
    return { 
     body: "Line one. {{{<br>}}} Line Two.", 
    }; 
    } 
}); 

view = new view(); 
MasterView.showChildView('master_content', view); 
+0

Ceci est proche. Le {{{n'est pas nécessaire dans la chaîne body, il est nécessaire dans la chaîne de template autour de {{{body}}} 'dans la fonction' compile'. La chaîne elle-même peut juste être "Ligne un.
Ligne deux." –