2013-01-06 55 views
1

我想將玉器模板從服務器中的玉器模板傳遞給瀏覽器。防止服務器端玉器翻譯瀏覽器玉器模板

我的問題是玉模板是由此刻的服務器解釋...

這裏是我聲明模板:

script#entry-row(type='text/template') 
    tr 
    td= number 
    td= sum + '€' 
    td= description || '' 
    td= moment(date, 'YYYY-MM-DDTHH:mm:ss:SSSZ').format('dddd DD MMMM YYYY') 
    td 
     span.label= category 
    td 
     input(type='checkbox', disabled='disabled', checked=shared) 

我發現的唯一的解決辦法是增加管在生產線開始,但它不是一個很好的方式:

script#entry-row(type='text/template') 
    | tr 
    | td= number 
    | td= sum + '€' 
    | td= description || '' 
    | td= moment(date, 'YYYY-MM-DDTHH:mm:ss:SSSZ').format('dddd DD MMMM YYYY') 
    | td 
    |  span.label= category 
    | td 
    |  input(type='checkbox', disabled='disabled', checked=shared) 

任何其他的想法?

+0

我喜歡管道語法。輸入稍慢,但很容易閱讀和理解。順便說一下,感謝分享解決方案。我花了將近半個小時的時間尋找任何可能的解決方案。 –

回答

1

我最近困擾在這幾天,我找到一個更好的解決方案。

您可以重命名你的玉局部模板到HTML擴展,並將其包含在主

玉頁。所以玉不會嘗試在服務器端編譯包含的部分,並且你在瀏覽器端得到你想要的東西。

這裏是我的榜樣編碼:

index.jade:

extends layout 

block content 
    .container 
    .header 
     a= title 
     .input-append 
     input.input-medium(type="text", placeholder="電子郵箱") 
     button.btn(id='subscribe') 訂閱 
     .clear 
    .row-fluid 
     .span8 
     ul.tweets 
     .span3 

     ul.users 


    script#tweet-template(type='template') 
    include templates/tweet.html 

和部分模板/ tweet.html

li 
    .media 
    img.pull-left(src=tweet.user_img) 
    .media-body 
     h5.media-heading= tweet.user_name 
     p.text 
     span #{tweet.text} 
     - if (tweet.pic_name != '') { 
      br 
      img.img-polaroid(src='/images/tweets/' + tweet.pic_name + '_thumb.jpg', class='thumb_img') 
      img.img-polaroid(src='/images/tweets/' + tweet.pic_name + '_middle.jpg', class='middle_img') 
     - } 
     p.tail 
     - if (tweet.pic_name != '') { 
      a(href='/images/tweets/' + tweet.pic_name + '_large.jpg') 查看大圖 
     - } 
     span.time #{tweet.create_at} 
     轉發(#{tweet.reposts_count}) 評論(#{tweet.comments_count}) 
+0

我沒有時間嘗試,但如果它工作,這是非常好的。謝謝 – Charles

0

正在使用express

可能的解決方案可能是JadeAsset。另見討論here

您可以掛鉤資產注入快遞:

assets.on('complete', function() { 
    var app = express.createServer(); 
    app.configure(function() { 
     app.use(assets); // that's all you need to do 
    }); 
    app.listen(8000); 
}); 

要創建玉資產:

var assets = new AssetRack([ 
    new rack.JadeAsset({ 
     url: '/templates.js', 
     dirname: __dirname + '/templates' 
    }) 
]);