2016-02-18 3 views
0

Я хотел бы получить доступ к шаблону параметра, пока я уже на {{#each}}. Что-то вроде:Доступ к шаблону шаблона, когда уже в {{#each}}

<template name="overview"> 
    {{> userList users=users level=0}} 
</template> 

<template name="userList"> 
    {{#each users}} 
    <div class="level{{../something}}"> 
    <!-- not working, how can i access {{something}} here ? --> 
    {{>userList users=users level=subLevel}} 
    {{name}} 
    {{/each}} 
</template> 


Template.userList.helpers({ 

    subLevel: function() { 
     return this + 1; 
    } 
}); 

но это не работает, есть ли у вас идеи?

Технически, я вызываю рекурсивно шаблон, и я хотел бы знать, на каком уровне мой шаблон.

ответ

0

Хорошо, я наконец нашел, что лучший способ достичь этого - добавить в мой массив пользователей ключ level, а не передавать его с помощью параметра. Космические рамки, похоже, не смогут достичь того, чего я хотел изначально.

0

Я не уверен, что вы пытаетесь сделать, но это не выглядит правильным. Сам шаблон, вызывающий сам, приводит к бесконечному циклу. Например, создайте новый метеоритный проект и попробуйте вызвать {{> hello}} внутри шаблона «привет». Это не работает.

<head> 
    <title>test</title> 
</head> 

<body> 
    <h1>Welcome to Meteor!</h1> 
    {{> hello}} 
</body> 

<template name="hello"> 
    <button>Click Me</button> 
    <p>You've pressed the button {{counter}} times.</p> 
    {{> hello}} 
</template> 

Там должен быть другой способ сделать то, что вы пытаетесь сделать ...

+2

Это похоже на вполне допустимый вариант использования, например, для дерева пользователей управления в компании? –

0
<template name="overview"> 
    {{> userList users=users level=0}} 
</template> 

<template name="userList"> 
    {{#each users}} 
    <div class=level> 
    {{>userList users=users level=subLevel}} 
    {{name}} 
    {{/each}} 
</template> 

Поскольку вы подложили переменную уровня в двойных кавычках, которые не будут оценены.