2013-03-21 14 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自动返回了方法的最后一个语句的输出,并且这导致了问题。如果我只是坚持在那里额外的回报声明,它的工作。

相关问题