【问题标题】:Handlebars: native inline conditional expression or equivalent?Handlebars:原生内联条件表达式或等价物?
【发布时间】:2022-01-10 04:54:05
【问题描述】:

如何在 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' 形式的内联条件语句

提前致谢。

【问题讨论】:

    标签: if-statement expression inline conditional-statements handlebars.js


    【解决方案1】:

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

    我注册了一个自定义助手,如下所示:

        // 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

    【讨论】:

      【解决方案2】:

      inline if statement:

      <div class="message {{if isImportant 'important' 'unimportant'}}"></div>
      

      【讨论】:

      • 似乎只添加了 ember
      【解决方案3】:

      据我所知,这是您无需注册自定义助手即可完成此操作的唯一方法。

      Handlebars.js Else If

      【讨论】:

      • 你能发布一个像我这样的样本吗?根据变量选项选择和选择选项?我发布的上述代码对我不起作用。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 2016-06-14
      • 2018-07-08
      • 2010-11-05
      • 1970-01-01
      • 2010-10-08
      • 2011-05-17
      相关资源
      最近更新 更多