【问题标题】:How to prevent a conditional in a template literal from rendering false如何防止模板文字中的条件呈现假
【发布时间】:2023-03-18 01:56:01
【问题描述】:

我有以下模板文字

`<div class="date ${($.inArray(date, dates) == -1) && `outside`}">
     <div>${date.format('D')}</div>
 </div>`

当表达式($.inArray(date, dates) == -1) 的计算结果为真时,外面的类就显示出来了,但是,当它的计算结果为假时,作为${($.inArray(date, dates) == -1) &amp;&amp;outside} 的结果输出假。

如何避免输出错误?

【问题讨论】:

    标签: javascript ecmascript-6 template-literals


    【解决方案1】:

    你可以使用三元conditional operator:condition ? valueWhenTrue : valueWhenFalse:

    `<div class="date ${($.inArray(date, dates) == -1) ? `outside` : ``}">
        <div>${date.format('D')}</div>
    </div>`
    

    【讨论】:

      【解决方案2】:

      三元运算符:

      ($.inArray(date, dates) == -1) ? 'outside' : ''
      

      回退到空字符串:

      ($.inArray(date, dates) == -1) && 'outside' || ''
      

      【讨论】:

        猜你喜欢
        • 2021-12-08
        • 2017-06-21
        • 1970-01-01
        • 2014-11-07
        • 2014-05-07
        • 2017-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多