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

时间:2016-02-18 11:24:20

标签: meteor meteor-blaze spacebars

我想在{{#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;
    }
});

但它没有用,你有什么想法吗?

从技术上讲,我以递归方式调用模板,并且我想知道我的模板在什么级别。

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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>  

因为您在双引号中包含了无法计算的级别变量。

答案 2 :(得分:0)

好的,我终于发现实现这一目标的最佳方法是在我的用户数组中添加level键,而不是使用参数传递它。 Spacebars似乎无法达到我最初想要的效果。