车把中的动态路径

时间:2015-07-21 18:34:49

标签: handlebars.js

我搜索了很多问题,但没有找到答案。 我使用把手模板并具有数据结构:

{
  privileged_users: [ "user1", "user2" ],
  users: {
    user1: { name: "N1" },
    user2: { name: "N2" },
    user3: { name: "N3" }
  }
}

我不想用一些模板输出所有特权用户。像这样:

<table>
  {{#each privileged_users}}
     <tr><td>{{../users.[this].name}}</td></tr>
  {{/each}}
</table>

没有额外的助手可以吗?

如果不是这样我怎么能用更改上下文来编写块帮助器到../users.[this]?

1 个答案:

答案 0 :(得分:2)

注册以下帮助者:

Handlebars.registerHelper('lookupProp', function (obj, key, prop) {
   return obj[key] && obj[key][prop];
});

然后修改模板,如:

<table>
  {{#each privileged_users}}
     <tr><td>{{lookupProp ../users this 'name'}}</td></tr>
  {{/each}}
</table>

这是工作fiddle 上一个只是一个简单的表达式助手。

根据问题,现在这是一个有效的jsfiddle

自3.0.3版以来,Handlebars内置了查找helper。 块助手的替代方法可以是Handlebars Partial Context方法,即定义/注册partial,并在主模板中使用不同的上下文。