Я пытаюсь создать меню с помощью рулей, на основе этого массива (от 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"
Based на Session.get 'module'
соответствующий пункт меню подсвечивается классом css активным.
На перезаряжания, сеанс переменной module
содержит «панель», которая является первой записью в этом массиве, однако, он не получает активных -класса. Если я добавлю пустой объект в качестве первого элемента в modules
-array, элемент «приборная панель» будет правильно выделен.
Странная вещь, что первый элемент (панель) оказывается хорошо, но это не имеет активный -класса, который поднимает впечатление, что функция this.isActive
не вызывается для первого элемента.
Я делаю это неправильно?
вы пробовали обертывания '{{#each модули}} {{/} каждый } 'в' {{#if modules}} {{/ if}} '? – rickyduck
Да (по вашему вопросу), но это ничего не меняет. – brauer