我試圖產生與車把上的菜單,基於此數組(從CoffeeScript中)的第一個條目:#each與呼叫幫手忽略陣列
Template.moduleHeader.modules = -> [
{ "moduleName": "dashboard", "linkName": "Dashboard" }
{ "moduleName": "roomManager", "linkName": "Raumverwaltung" }
{ "moduleName": "userManager", "linkName": "Benutzerverwaltung" }
]
迭代看起來像這樣(從HTML代碼):再次
{{#each modules}}
<li {{this.isActive this.moduleName}}>
<a class="{{this.moduleName}}" href="#">{{this.linkName}}</a>
</li>
{{/each}}
{{this.isActive}}
的定義如下(CoffeeScript的代碼):
Template.moduleHeader.isActive = (currentModuleName) ->
if currentModuleName is Session.get 'module'
"class=active"
基於在Session.get 'module'
上,相應的菜單項會突出顯示,並且css類處於活動狀態。
在重裝,會話變量module
包含「儀表盤」,這是該數組中的第一項,但是,它沒有得到活躍 -class。如果我添加一個空對象作爲第一個項目到modules
- 陣列,「儀表板」項目被正確突出顯示。
奇怪的是,第一項(儀表盤)呈現很好,但它不具備活躍 -class,這引起了印象,該函數this.isActive
不叫的第一個項目。
我做錯了嗎?
你試過包裹'{{#each模塊}} {{/每} }'in'{{#if modules}} {{/ if}}'? – rickyduck 2013-05-13 16:01:54
是的(在你的問題上),但它不會改變任何東西。 – brauer 2013-05-13 20:08:55