2014-03-02 15 views
0

做這件事時:無法分配ID作爲變量來玉模板

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

與霍根

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}}它工作正常!我錯過了什麼?

回答

0

像它說,player未在上下文中定義你正在試圖使用它。

你可以把周圍player單或雙引號,然後它會defined--作爲一種原始的字符串。

Like div(id='player')

如果這就是你想要的。如果你想讓div的id被變量動態改變,那麼你應該使用double curlies來傳入。

這些是不同的程序上下文。您可以在Jade模板中定義變量並對它們執行操作,但這些變量與中傳遞的變量不同,後者在Hogan/Mustache中稱爲標記。在這種情況下,您需要標籤。

我從來沒有嘗試過這樣的事,但一些沿

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

應該工作線。

+0

我在玉石和小鬍子之間混合了 - 變量屬於霍金和玉石,對此並不知情。所以我做了' - var player ='{{player}}'' – ilyo

+0

非常好,那也可以。 –