我使用Handlebars渲染HTML select
,但是如果此值本身已经是渲染数据属性,则无法设置所选值。我发现other解决方案并不令人满意,因为它们没有解决这一特定问题。
我试过
<select>
{{#each countriesList}}
<option value="{{@key}}" {{{isSelected ./setCountry @key}}}>
{{this}}
</option>
{{/each}}
</select>
我有以下helper
尝试设置所选值
isSelected: function (Country, key) {
return Country === key ? 'selected' : '';
}
我在expressjs中渲染
var countries = {'en': 'England', 'fr': 'France', 'de' : 'Germany'};
var data = {'countriesList':countries, 'setCountry': 'fr'};
res.render('home', data);
它应该将法国选项设置为所选选项,但它不起作用!我也尝试从辅助函数中获取呈现的属性,但没有成功。有什么想法吗?
答案 0 :(得分:1)
我找到了解决方案。显然它与点有关。而不是./
应该../
来引用主数据变量。现在它可以工作
<select>
{{#each countriesList}}
<option value="{{@key}}" {{{isSelected ../setCountry @key}}}>
{{this}}
</option>
{{/each}}
</select>
助手:
isSelected: function (Country, key) {
return Country === key ? 'selected' : '';
}
expressjs:
var countries = {'en': 'England', 'fr': 'France', 'de' : 'Germany'};
var data = {'countriesList':countries, 'setCountry': 'fr'};
res.render('home', data);