无法将id作为变量分配给jade模板

时间:2014-03-02 11:22:43

标签: html templates pug mustache hogan.js

这样做时:

div(id=player)
  ul.timeline
    {{#epochs}}
    li.epoch {{epoch}}
    {{/epochs}}

用hogan

渲染它
html = ss.tmpl['board'].render({ //ss is for socketstream, it uses hogan.
  epochs: treeStructure,
  player: "player2"
});

我收到以下错误

! Errror formatting Jade template
/Users/ilyadorman/dev/game/client/templates/board.jade:2
    1| div(id=player)
  > 2|   ul.timeline
    3|     {{#epochs}}
    4|     li.epoch {{epoch}}
    5|     {{/epochs}}

player is not defined

但是当我做{{player}}时它工作正常!我错过了什么?

1 个答案:

答案 0 :(得分:0)

如上所述,player未在您尝试使用它的上下文中定义。

您可以在player周围放置单引号或双引号,然后将其定义为原始字符串。

div(id='player')

如果这就是你想要的。如果你想用变量动态改变div的id,你应该使用double curlies来传入它。

这些是不同的程序化上下文。您可以在Jade模板中定义变量并对它们执行操作,但这些变量与中传递的变量不同,在Hogan / Mustache中称为变量。在这种情况下,您需要标签。

我从来没有尝试过这样的事情,但有些事情就是

div(id='{{player}}')

应该有用。