2013-04-13 12 views
5

yılında satırlı Dizeleri Handling uzun dize (bir mesaj gövdesi veya çok hatlı notu) içerir.JSON yanıtı benim sunucusundan döndürülen bir Gidon şablonunda

Tipik message.body şöyle görünebilir:

"Hi!\r\n\r\nHow's life? Everything is well with me\r\n\r\nSincerely,\r\n\r\nAustin\r\n" 

şimdi gidonu kullanarak, Ancak bu

<p>{{body}}</p> 

gibi katıştırma ediyorum, bu html bu işe vermektedir:

<p>"Hi! 
How's life? Everything is well with me 

Sincerely, 

Austin"</p> 

Nasıl bu içindeki her birey hattını işlemek için alabilirsiniz onun kendi html paragraf [p] etiketi? raylar ise, ben şablonda mantığı sevmez

- note.body.each_line do |x| 
    %p= x 

cevap

4

Gidonu (Haml olarak) böyle bir şey ile bu yapardı.

var lines = "...".split(/(?:\r\n)+/); 

ve sonra şablona bu diziyi beslemek:

var html = tmpl({ body: lines }); 

şu şekilde görünecektir gibi durumlarda Şablon:

sizin şablon böyle bir şeyle görmeden Genellikle verilerinizi Gizlilik
{{#each body}} 
    {{.}} 
{{/each}} 

Demo: http://jsfiddle.net/ambiguous/Gbu5w/

10

bir gidon ekleyebilir s 'yardımcı'

http://handlebarsjs.com/expressions.html (Yardımcılar aşağı kaydırma)

ör şablonunuzu çağrısında Sonra

Handlebars.registerHelper('paragraphSplit', function(plaintext) { 
    var i, output = '', 
     lines = plaintext.split(/\r\n|\r|\n/g); 
    for (i = 0; i < lines.length; i++) { 
     if(lines[i]) { 
      output += '<p>' + lines[i] + '</p>'; 
     } 
    } 
    return new Handlebars.SafeString(output); 
}); 

{{paragraphSplit body}}