如何防止模板文字中的条件呈现错误

How to prevent a conditional in a template literal from rendering false

我有以下模板文字

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

当表达式 ($.inArray(date, dates) == -1) 的计算结果为真时,外面的 class 出现,没有其他任何东西,但是,当它的计算结果为假时,输出的结果是 ${($.inArray(date, dates) == -1) &&外面}.

如何避免输出 false?

三元运算符:

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

回退到空字符串:

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

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

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