簡體   English   中英

通過handlebars.js中的動態屬性遍歷對象

[英]Iterate through object by dynamic property in handlebars.js

我試圖通過使用動態屬性名稱來遍歷一個對象,但它似乎不起作用:

{{#each orders["order" + name] }}

甚至這似乎都不起作用

{{#each orders["orderDemo"] }}

但這確實:

{{#each orders.orderDemo }}

根據其他條件或迭代處理動態屬性名稱的任何解決方案?

就我而言,我有:

{{#each types}}
    {{#each orders[type] }}
        <table>....</table>
    {{/each}}
{{/each}}

AFAIK Handlebars不為動態屬性提供任何內置支持,但您可以注冊一個簡單的“幫助函數”,如下所示:

Handlebars.registerHelper('orders', function(parent,child,options) {
  return parent["order"+child].map(options.fn).join``
});

然后按如下方式使用它:

<ul>
  {{#orders orders name}}
      <li>{{this}}</li>
  {{/orders}}
</ul>

如果你感覺遞歸,你甚至可以這樣做:

Handlebars.registerHelper('forEach', function(parent,expr,options) {
  return parent[Handlebars.compile(expr)(this)].map(options.fn).join``;
});

{{#forEach orders "order{{name}}" }}
    <li>{{this}}</li>
{{/forEach}}

但是如果你有很多數據,這將是一個性能豬。

暫無
暫無

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

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