簡體   English   中英

handlebars.js-#each塊和#block之間的區別

[英]handlebars.js - difference between #each block and #block

這兩個handlebars.js模板之間有什么區別?

{{#myblock}}

  {{this}}

{{/myblock}}

{{#each myblock}}

  {{this}}

{{/each}}

鑒於沒有為“ myblock”定義幫助程序,因此這兩個模板(從我看到的內容)可以操作並輸出相同的模板。 除了可讀性之外,這兩個模板之間是否還有其他區別?

理解這一點的更簡單方法是使用井號(#)作為幫助器之后的內容。 助手是一個函數,它處理帶有可選參數的調用,這些參數是從模板中的助手聲明之后得出的。

{{#each myblock}}

  {{this}}

{{/each}}

在#each的情況下,它調用對在這種情況下'myblock'提供的參數進行迭代的函數(幾乎在所有情況下都是數組),並將輸出為每個元素生成的內容。 成為該迭代中的每個元素。

類似地,在第一個示例中,由於myblock跟隨#號,因此它成為了一個助手。

{{#myblock}}

  {{this}}

{{/myblock}}

現在,由於沒有名稱為myblock的預定義幫助程序,您可以使用Handlebars.registerHelper()創建自定義幫助程序,如下所示。

Handlebars.registerHelper('myblock', function(context, options) {
  return options.fn(context);
});

暫無
暫無

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

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