在模板文字中使用条件的问题

问题描述

如果我有以下代码,如何使三元运算符起作用?

'<p>{balance==0?<span class="danger">Not available</span>:(Stock: {balance}})</p>'

谢谢!


很抱歉,也许我的问题不清楚。让我在这里详细说明一下,我正在使用Bloodhound库提供建议下拉列表。 并且代码如下图所示。

var prodName_typehead = {
              name: 'prod_name',displayKey: 'name',hint: (App.isRTL() ? false : true),source: item.ttAdapter(),limit: 20,templates: {
                suggestion: Handlebars.compile([
                  '<div class="media">','<div class="pull-left">','<div class="media-object">','<img src="{{thumb}}" width="50" height="50"/>','</div>','<div class="media-body">','<p><strong>{{name}}</strong></p>','<p>{{desc}}</p>',`<p>${balance==0 ? `<span class="danger">Not available</span>`:`(Stock: ${balance})`}</p>`,].join(''))
              }
            };

解决方法

尝试如下。

`<p>${balance==0 ? `<span class="danger">Not available</span>`:`(Stock: ${balance})`}</p>`

检查以下balance = 0balance = 1的结果。

let balance = 0;
let result = `<p>${balance==0 ? `<span class="danger">Not available</span>`:`(Stock: ${balance})`}</p>`;
console.log('balance = 0 ->',result);

balance = 1;
result = `<p>${balance==0 ? `<span class="danger">Not available</span>`:`(Stock: ${balance})`}</p>`;
console.log('balance = 1 ->',result);