已经在 {{#each}} 中时访问模板参数

Access template parameter when already in an {{#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;
    }
});

但它不起作用,你有什么想法吗?

从技术上讲,我正在递归调用模板,我想知道我的模板处于什么级别。

我不确定您要做什么,但这看起来不对。模板调用自身会导致无限循环。例如,创建一个新的流星项目并尝试在 "hello" 模板中调用 {{> 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>

必须有另一种方法来做你想做的事...

<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>  

因为您用双引号将 level 变量括起来,不会对其求值。

好吧,我终于发现实现该目标的最佳方法是在我的用户数组中添加一个 level 键,而不是通过参数传递它。 Spacebars似乎无法实现我最初想要的。