2013-03-21 13 views
0

我收到了這個我很困惑的bug。我正在運行一個使用hbs package的手柄模板的Express 3.0.6應用程序。 我試圖爲每個視圖的腳本和樣式表創建塊,基於this exampleExpress 3.0上的HBS模塊將文本添加到生成的HTML中

由於某種原因,每當我嘗試使用助手時,它都會在html文件的頂部添加一些數字(如直接文本)。奇怪的是,這些數字在刷新後會改變,我不知道什麼是錯誤的,甚至不知道怎麼回事。

blocks = {} 
hbs.registerHelper 'extend', (name, context) -> 
    block = blocks[name] 
    if not block 
     block = blocks[name] = [] 
    block.push(context.fn this) 

hbs.registerHelper 'block', (name) -> 
    val = (blocks[name] || []).join('\n') 
    blocks[name] = [] 
    return val 

在的layout.html:

<head> 
    {{{block "stylesheets"}}} 
    {{{block "javascripts"}}} 
</head> 

在其他觀點:

{{#extend "stylesheets"}} 
    <link ... /> 
{{/extend}} 

{{#extend "javascripts"}} 
    <script ... 
{{/extend}} 

在輸出HTML,我得到 「1 + 1」。 1的值有時會隨機更改,但總是有x個值,其中x是擴展標籤的數量。

感謝任何見解/幫助任何人可能會給!

編輯:: 另外,我注意到另一件事是,如果我改變塊助手:

{{{stylesheets}}} 
    {{{javascripts}}} 

的數字從1開始,然後不斷通過各1我刷新頁面時遞增。我不確定發生了什麼,但希望這會有所幫助。

+0

只是一個猜測,但獲取數字回來,通常來自您的web服務調用格式化它返回的數據 – 2013-03-21 07:28:15

回答

1

原來在'extend'寄存器幫助器中,coffeescript自動返回了方法的最後一個語句的輸出,並且這導致了問題。如果我只是堅持在那裏額外的回報聲明,它的工作。

相關問題