我有一个名为Locations
的查找对象:
{
'CA:' 'California',
'NV': 'Nevada',
'FL': 'Florida',
...
}
和一组地址:
[
{street:'123 place', state:'FL', ...}
]
是否可以在手柄模板标签中引用查找的输出?
这样的事情是我尝试过的事情
{{#each addresses}}
{{Lookup[this.state]}}
{{/each}}
但是我收到了一个错误。所以我可能错误地引用了Lookup。
答案 0 :(得分:1)
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"/>