簡體   English   中英

如何嵌套空格鍵標簽?

[英]How Do I Nest Spacebars Tags?

我有個問題。 我的數據庫中有一個文檔集合,我想根據是否設置了與該文檔相對應的會話變量來顯示每個文檔。

為了說明我的問題,讓我舉一個簡化的例子。

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應該對幫助者可用:

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

您的模板如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM