Handlebars 在同一行中引用两个单独的对象

Handlebars Reference two separate objects in the same line

我有一个名为 Locations 的查找对象:

{
  'CA:' 'California',
  'NV': 'Nevada',
  'FL': 'Florida',
  ...
}

和一组地址:

[
  {street:'123 place', state:'FL', ...}
]

是否可以在 handlebars 模板标签中引用查找的输出?

我试过类似的东西

{{#each addresses}}
  {{Lookup[this.state]}}
{{/each}}

但是我得到一个错误。所以我可能引用了 Lookup 错误。

lookup 助手,除了是小写的(不是“Lookup”)之外,还接受两个由空格分隔的参数。第一个参数是要在其中进行查找的对象(或数组)的路径,第二个参数是要使用的键。所以在你的情况下你可能想要 {{lookup ../locations this.state}}。这是一个片段:

var source =
  '{{#each addresses}}' +
    '<li>{{lookup ../locations this.state}}</li>' +
  '{{/each}}';

var template = Handlebars.compile(source);

var data = {
  locations: {
    'CA': 'California',
    'NV': 'Nevada',
    'FL': 'Florida',
    // ...
  },
  addresses: [
    { street: '123 Place', state: 'FL' },
    { street: '456 Other', state: 'NV' },
    { street: '789 Last', state: 'CA' },
    // ...
  ]
};

document.getElementById('list').innerHTML = template(data);
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.4/handlebars.js"></script>
<ul id="list"/>