将@index传递给子模板Meteor

时间:2015-11-09 20:40:58

标签: meteor meteor-blaze

我想知道如何将新的@index变量传递给Meteor 1.2中的子模板。 我有类似的东西:

    {{#each scores}}
          {{@index}} //<---- THIS WORK
        {{> scoreItem}}
    {{/each}}

    <template name="scoreItem">
            <div class="position">
                {{@index}}. // <----- GIVE ERROR
            </div>
    </template>

我总是未定义或错误

1 个答案:

答案 0 :(得分:1)

出于演示目的,我将假设得分具有value属性。

选项1:将index作为上下文

的一部分传递
<template name="myTemplate">
  {{#each scores}}
    {{> scoreItem score=this index=@index}}
  {{/each}}
</template>

<template name="scoreItem">
  <div>{{score.value}} {{index}}</div>
</template>

选项2:使用index

扩展上下文

此解决方案类似于我对this question的回答:

Template.registerHelper('extendContext', function(key, value) {
  var result = _.clone(this);
  result[key] = value;
  return result;
});
<template name="myTemplate">
  {{#each scores}}
    {{> scoreItem extendContext 'index' @index}}
  {{/each}}
</template>

<template name="scoreItem">
  <div>{{value}} {{index}}</div>
</template>