0

这是一个javascript三元运算符代码。

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

为了在 HTML 中正确呈现,我尝试了很多方法,但是没有运气。

输出:{balance>0?(Stock: {{balance}}):<span class="text-danger">Not Available</span>} 预期输出:(库存:23)或不可用(红色)

先感谢您!

以下是用于使用 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>',
                                  '<div class="media-body">',
                                      '<p><strong>{{name}}</strong></p>',
                                      '<p>{{desc}}</p>',
                                       '<p>{balance>0?(Stock: {{balance}}):<span class="text-danger">Not Available</span>}</p>',
                                  '</div>',
                            '</div>',
                          ].join(''))
                    }
                  };
4

1 回答 1

1

我相信你想要的是这样的:

`<p>${balance>0?`Stock: ${balance}`:`<span class="text-danger">Not Available</span>`}</p>`

当我运行这个:

balance = 0
`<p>${balance>0?`Stock: ${balance}`:`<span class="text-danger">Not Available</span>`}</p>`

我得到:

"<p><span class="text-danger">Not Available</span></p>"

当我运行这个时:

balance = 1
`<p>${balance>0?`Stock: ${balance}`:`<span class="text-danger">Not Available</span>`}</p>`

我得到:

"<p>Stock: 1</p>"

我正在使用 javascript 模板文字来完成您要进行的变量替换。

(基本上你遇到的问题是你需要打勾(`)而不是双引号(“)来制作模板文字,正如Narayan在他的评论中提到的那样,在第一个括号之前的$开始嵌入javascript然后嵌套这个第一个字符串选项中的余额的逻辑相同。)

于 2020-09-03T05:58:25.733 回答