如何嵌套空格键标签



我有一个问题。我的数据库中有一个文档集合,我希望根据是否设置了与该文档对应的会话变量来显示每个文档。

为了说明我的问题,让我举一个简单的例子。
Meteor.myTemplate.helpers({
  stuff: [
    {name: 'item1'},
    {name: 'item2'}
    {name, 'item3'},
    {name: 'item4'},
    {name: 'item5'}
  ],
  isActive: function (itemName) {
    return Session.get(itemName + 'IsActive');
  }
});

现在,我要做的是:

{{#each stuff}}
    {{#if isActive {{name}} }}
      {{> someTemplate}}
    {{/if}}
{{/each}}

但是由于不支持这样的嵌套标记,所以我不能这样做。我正在寻找一种方法来实现这一点,而不必写:

{{if isActive 'item1'}}{{> someTemplate}}{{/if}}
{{if isActive 'item2'}}{{> someTemplate}}{{/if}}
{{if isActive 'item3'}}{{> someTemplate}}{{/if}}
{{if isActive 'item4'}}{{> someTemplate}}{{/if}}
{{if isActive 'item5'}}{{> someTemplate}}{{/if}}

如果数据像上面的例子一样是静态的(而不是来自数据库游标),这是可能的,但在任何情况下都不实际,特别是有很多项的情况下。而且,这种风格可能会让每个程序员望而却步。

既然isActive的上下文是stuff,那么this.name应该对helper可用:

Template.myTemplate.helpers({
  isActive: function(itemName) {
    return Session.get(this.name + 'IsActive');
  }
});

你的模板看起来像:

{{#each stuff}}
  {{#if isActive}}
    {{> someTemplate}}
  {{/if}}
{{/each}}

最新更新