gpt4 book ai didi

if-statement - Handlebars : native inline conditional expression or equivalent?

转载 作者:行者123 更新时间:2023-12-04 03:58:26 26 4
gpt4 key购买 nike

如何在 Handlebars 模板中使用内联条件表达式?

有一种“本地”方式可以做到这一点吗?我的意思是,没有注册自定义助手?

例如,我一直在玩代码(有括号和没有括号):

<select name="alignment">
<option value="left" {{ #if (options.text_alignment == 'left') }}selected="selected"{{ /if }}>Left</option>
<option value="center" {{ #if (options.text_alignment == 'center') }}selected="selected"{{ /if }}>Center</option>
<option value="right" {{ #if (options.text_alignment == 'right') }}selected="selected"{{ /if }}>Right</option>
</select>

但它根本不起作用并抛出错误:

Error: Parse error on line 20:
...ion value="left" {{ #if (options.text_al
-----------------------^
Expecting 'ID', 'DATA', got 'INVALID'
[Break On This Error]

throw new Error(str);

那么,我如何才能以 if/else 结构或经典的三元运算符 (var == value)?'yes':'no' 的形式使用内联条件语句

提前致谢。

最佳答案

最后,我能够做到这一点,但我不得不说,以一种不太好的方式:(

我像下面这样注册了一个自定义助手:

    // Need to mark selected option inside a select.
Handlebars.registerHelper('select', function(variable, value) {
if (variable == value) {
return new Handlebars.SafeString('selected=selected');
}
else {
return '';
}
});

这个自定义助手可以这样使用:

    {{select option 'right'}}

其中 option 是要测试的变量,'right' 是针对它测试的值。

如果以后有人提出了一个也适用于 radioscheckboxes 的好解决方案,请添加我很乐意投票给他们的答案:D

关于if-statement - Handlebars : native inline conditional expression or equivalent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18166041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com