如何在字符串中使用运算符三元组?

Suc*_*Man 0 javascript string

请考虑我尝试过的以下代码段:

<script>
    for (var key in photoList) {
        if(key == photoList[key].id) {
            var res =  `<li id="thumbnail-`+key+`">
                            <div class="thumbnail `+(product.photo == photoList[key].id)+` ? 'thumbnail-main' : ''">
                                ...
                            </div>
                        </li>`;
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

我尝试这样,但它不起作用?我该怎么做?

Li3*_*357 7

当你用一个带有严重标记(`)的字符串括起来时,它允许在字符串连接上插入表达式,称为模板文字,这在ES2015中是新的.您的三元运算符是一个表达式,因此您可以${expr}在字符串插值中使用表示法来插入表达式.由于您已经在使用模板文字,因此没有理由进行连接,因此:

var res = `<li id="thumbnail-${key}">
             <div class="thumbnail ${product.photo == photoList[key].id ? 'thumbnail-main' : ''}>
               ...
             </div>
           </li>`;
Run Code Online (Sandbox Code Playgroud)

在任何想要使用表达式字符串连接的地方,您都可以使用插值.所以代替:

'1 + 1 = ' + (1 + 1)
Run Code Online (Sandbox Code Playgroud)

你可以做:

`1 + 1 = ${1 + 1}`
Run Code Online (Sandbox Code Playgroud)

因为1 + 1是表达.